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