在Java中,被static修飾的成員稱為靜態成員,static關鍵字可以用來修飾方法或者成員變量,且被static修飾的方法或者成員變量屬于類方法或者類屬性,也就是說被static修飾的方法或者成員變量不是單獨存儲在某一個對象的空間,是被所有該類的所有實例化對象共享的,最好的證明方式就是靜態成員變量既可以通過對象來訪問,也可以通過類名來訪問,一般更推薦后者
其次,對于靜態成員變量來說,靜態成員變量是在類加載時就被分配內存的,它是存儲在JVM中的方法區中
接著針對靜態方法來說,在靜態方法中不能訪問非靜態成員變量,且在靜態方法中不能訪問非靜態方法,因為在靜態方法中沒有this引用
然后就是被static修飾的方法無法實現被重寫,不能用來實現多態
還有就是靜態成員變量是可以通過靜態代碼快來進行初始化,而靜態代碼塊是在類加載時初始化的,且只會加載一次,且靜態代碼快加載的優先級是高于實例代碼快的優先級的
最后一個就是在靜態內部類中只能訪問外部類的靜態成員方法或者靜態成員變量