對Java中的Static的講解(第二部分)
Java Static:作為修飾符, 可以用來修飾變量、方法、代碼塊(但絕對不能修飾類)。
1、修飾變量:
類的所有對象共同擁有的一個屬性,也稱為類變量。這類似于C語言中的全局變量。類變量在類加載的時候初始化,而且只被初始化一次。在程序中任何對象對靜態變量做修改,其他對象看到的是修改后的值。因此類變量可以用作計數器。另外,Java Static變量可以用類名直接訪問,而不必需要對象。
2、修飾方法:
類的所有對象共同擁有的一個功能,稱為靜態方法。靜態方法也可以用類名直接訪問,而不必需要對象。所以在靜態方法里不能直接訪問非靜態變量和非靜態方法,在Static方法里不能出現this或者super等關鍵字。
3、修飾Java代碼塊:
用static去修飾類里面的一個獨立的代碼塊,稱為靜態代碼塊。靜態代碼塊在類第一次被加載的時候執行,而且只執行一次。靜態代碼塊沒有名字,因此不能顯式調用,而只有在類加載的時候由虛擬機來調用。它主要用來完成一些初始化操作。
4、說說類加載:
JVM在第一次使用一個類時,會到classpath所指定的路徑里去找這個類所對應的字節碼文件, 并讀進JVM保存起來,這個過程稱之為類加載。
可見,無論是變量,方法,還是代碼塊,只要用static修飾,就是在類被加載時就已經"準備好了",也就是可以被使用或者已經被執行。都可以脫離對象而執行。反之,如果沒有static,則必須通過對象來訪問。
【編輯推薦】