static的特點:
1.static是一個修飾符,用於修飾成員;
2.static修飾的成員被所有的對象所共享;
3.static優先於對象存在,因為static的成員隨着類的加載就已經存在了;
4.static修飾的成員多了一種調用方式,就可以直接被類名所調用。(類名.靜態成員)
5.static修飾的數據是共享數據,對象中存儲的是特有數據;
舉例:教室里有一台飲水機和50名學生,每個學生都有自帶水杯。
這台飲水機就可以用static修飾,優先於水杯這個對象而出現在這個教室,且屬於共享數據,而水杯卻是特有數據。
1 class Person 2 { 3 String name;//成員變量(實例變量) 4 static String country="CN";//靜態變量(類變量) 5 public void show(); 6 { 7 System.out.println(name+":"+country); 8 } 9 }
成員變量和靜態變量的區別:
1.兩個變量的生命周期不同
成員變量隨着對象的創建而存在,隨着對象的被回收而釋放;
靜態變量隨着類的加載而存在,隨着類的消失而消失;
2.調用方式不同
成員變量只能被對象調用;
靜態變量能被對象調用,還能被類名調用;
3.別名不同
成員變量也稱為實例變量;
靜態變量被稱為類變量;
4.數據存儲位置不同
成員變量數據存儲在堆內存的對象中,所以也叫對象的特有數據;
靜態變量數據存儲在方法區的靜態區,所以也叫對象的共享數據;