“引用”是Java中非常重要的一個(gè)概念,對(duì)于引用的理解不深曲初,很容易犯一些自己都沒有意識(shí)到的錯(cuò)誤钮热。被final修飾的變量,不管變量是在是哪種變量窘问,切記不可變的是變量的引用而非引用指向?qū)ο蟮膬?nèi)容辆童。另外,本文中關(guān)于final的作用還有兩點(diǎn)沒有講到:
1惠赫、被final修飾的方法把鉴,JVM會(huì)嘗試為之尋求內(nèi)聯(lián),這對(duì)于提升Java的效率是非常重要的儿咱。因此庭砍,假如能確定方法不會(huì)被繼承,那么盡量將方法定義為final的混埠,具體參見運(yùn)行期優(yōu)化技術(shù)的方法內(nèi)聯(lián)部分
2逗威、被final修飾的常量,在編譯階段會(huì)存入調(diào)用類的常量池中岔冀,具體參見類加載機(jī)制最后部分和Java內(nèi)存區(qū)域
1靜態(tài)資源的加載順序是嚴(yán)格按照靜態(tài)資源的定義順序來加載的
2靜態(tài)代碼塊是嚴(yán)格按照父類靜態(tài)代碼塊->子類靜態(tài)代碼塊的順序加載的凯旭,且只加載一次概耻。
3靜態(tài)代碼塊對(duì)于定義在它之后的靜態(tài)變量,可以賦值罐呼,但是不能訪問