static:靜態(tài)的 ? 特點:1:其修飾的成員變量隨著類的加載就在方法區(qū)中的靜態(tài)區(qū)開辟內(nèi)存, 優(yōu)先于非static修飾的成員變量開辟內(nèi)存
2:修飾的成員變量是該類的所有對象共存,節(jié)約內(nèi)存
3:可以通過類名和對象訪問靜態(tài)成員變量
靜態(tài)成員變量和非靜態(tài)成員變量得區(qū)別
1:存儲數(shù)據(jù)
靜態(tài)成員變量存儲的是所有對象共享的數(shù)據(jù)
非靜態(tài)成員變量存儲的是每一個實例化對象特有的數(shù)據(jù)
2:存儲位置
靜態(tài)成員變量是隨著類的加載就在方法區(qū)中的靜態(tài)區(qū)開辟內(nèi)存了
非靜態(tài)成員變量是隨著每個實例化對象的創(chuàng)建在堆中開辟內(nèi)存
3:調(diào)用方式
靜態(tài)成員變量既可以通過對象訪問也可以通過類名直接訪問
非靜態(tài)成員變量只能通過對象訪問
4:生命周期
靜態(tài)成員變量是隨著類的加載就在方法區(qū)中的靜態(tài)區(qū)中創(chuàng)建,程序結(jié)束才被釋放
非靜態(tài)成員變量是隨著對象的創(chuàng)建在堆中出現(xiàn),隨著對象被垃圾回收而消失
實例成員變量---->>非靜態(tài)成員變量
類變量----->>靜態(tài)成員變量
實例成員函數(shù)---->>非靜態(tài)成員函數(shù)(既可以訪問非靜態(tài)成員變量,也可以靜態(tài)成員變量)
類函數(shù)----->>靜態(tài)成員函數(shù)(函數(shù)內(nèi)只能使用靜態(tài)成員變量,不能訪問非靜態(tài)成員變量)
什么時候用static修飾
當成員變量需要被雷的所有對象共享時,當成員函數(shù)沒有用到其所屬的類的任何非靜態(tài)成員時用static