static的特點:1,static是一個修飾符,用于修飾成員。2,static修飾的成員被所有的對象所共享。3,static優先于對象存在,因為static的成員隨著類的加載就已經存在了。 4,static修飾的成員多了一種調用方式,就可以直接被類名所調用 。 類名.靜態成員 。5,static修飾的數據是共享數據,對象中的存儲的是特有數據。
成員變量和靜態變量的區別?1,兩個變量的生命周期不同。成員變量隨著對象的創建而存在,隨著對象的被回收而釋放。靜態變量隨著類的加載而存在,隨著類的消失而消失。
2,調用方式不同。成員變量只能被對象調用。靜態變量可以被對象調用,還可以被類名調用。
3,別名不同。成員變量也稱為實例變量。靜態變量稱為類變量。
4,數據存儲位置不同。成員變量數據存儲在堆內存的對象中,所以也叫對象的特有數據.靜態變量數據存儲在方法區(共享數據區)的靜態區,所以也叫對象的共享數據.
靜態什么時候用?
1,靜態變量。當分析對象中所具備的成員變量的值都是相同的 。這時這個成員就可以被靜態修飾。只要數據在對象中都是不同的,就是對象的特有數據,必須存儲在對象中,是非靜態的。如果是相同的數據,對象不需要做修改,只需要使用即可,不需要存儲在對象中,定義成靜態的。
2,靜態函數。函數是否用靜態修飾,就參考一點,就是該函數功能是否有訪問到對象中的特有數據。簡單點說,從源代碼看,該功能是否需要訪問非靜態的成員變量,如果需要,該功能就是非靜態的。如果不需要,就可以將該功能定義成靜態的。當然,也可以定義成非靜態,但是非靜態需要被對象調用,而僅創建對象調用非靜態的沒有訪問特有數據的方法,該對象的創建是沒有意義。
靜態代碼塊。隨著類的加載而執行。而且只執行一次。
作用:用于給類進行初始化。
靜態使用的注意事項:1,靜態方法只能訪問靜態成員。(非靜態既可以訪問靜態,又可以訪問非靜態)2,靜態方法中不可以使用this或者super關鍵字。3,主函數是靜態的。
主函數特殊之處:1,格式是固定的。2,被jvm所識別和調用。
public:因為權限必須是最大的。static:不需要對象的,直接用主函數所屬類名調用即可。void:主函數沒有具體的返回值。main:函數名,不是關鍵字,只是一個jvm識別的固定的名字。String[] args:這是主函數的參數列表,是一個數組類型的參數,而且元素都是字符串類型。
新聞熱點
疑難解答