static學習筆記
static表示“全局”或者“靜態”的意思,用來修飾成員變量或者是成員方法,也可以形成靜態的static代碼塊。但是要尤為提醒的一點是,java中并沒有全局變量這個概念
- 被static修飾的成員變量或者是成員方法獨立于該類的任何對象,換句話說,它不依賴于特定的實例,被類的所有的實例共享。
- 一旦這個類被加載,就是在運行時數據區找到這些成員方法,也就是說static可以在對象創建之前被訪問,無需引用任何的對象。
- 用public修飾的static成員變量和成員方法本質是全局變量和全局方法,類的所有實例共享一個static變量。
- 其實關于static和public或者private的關系,只要把握住一個是訪問限權限定符,一個是功能限定符就好理解的多。
- 用static修飾的代碼塊表示靜態代碼塊,當Java虛擬機(JVM)加載類時,就會執行該代碼塊
- 如果你好好看我上面亂七八糟的東西以后,你就會明白為什么靜態方法中不能用this和super關鍵字,不能直接訪問所屬類的實例變量和實例方法
- 剛開始接觸的話,很容易把static和final這兩個關鍵字搞迷糊
- static final修飾的成員變量或者是成員方法,可以理解為全局常量
- 對于變量來說,一旦初始化,就不可修改
- 對于方法來說,不能被重寫。