java-靜態

靜態修飾符

靜態方法 可以與 普通方法 或者 靜態方法 重載

靜態屬性 和 靜態方法 可以被繼承,但是 靜態方法 不能被重寫

static 不可以修飾局部變量,所以靜態方法和非靜態方法中的變量都不能定義爲靜態變量

static可以修飾:屬性,方法,代碼段,內部類(靜態內部類)

靜態變量被所有的對象所共享,在內存中只有一個副本,它當且僅當在類初次加載時會被初始化,初始化後可以被改變

靜態代碼塊,在虛擬機加載類的時候就會加載執行,而且只執行一次,只能調用靜態變量和靜態方法;

靜態方法中直接不能訪問類的非靜態成員變量和非靜態成員方法,只能直接訪問靜態成員變量、靜態成員方法, 因爲非靜態成員方法/變量都是必須依賴具體的對象才能夠被調用;

非靜態成員方法中是可以訪問類的靜態成員方法/變量

非靜態代碼塊,在創建對象的時候(即new一個對象的時候)執行,每次創建對象都會執行一次;

static修飾的屬性、方法、代碼段跟該類的具體對象無關,不創建對象也能通過類名調用static修飾的屬性、方法等。

static 和 this 、super 勢不兩立,static 跟具體對象無關,而 this 、 super 正好跟具體對象有關

在JVM加載一個類的時候,若該類存在static修飾的成員變量和成員方法,則會爲這些成員變量和成員方法在固定的位置開闢一個固定大小的內存區域(只要這個類被加載,Java虛擬機就能根據類名在運行時數據區的方法區內定找到他們)

普通方法中可以通過this調用靜態方法

靜態方法中不能定義靜態變量,因爲static不能修飾局部變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章