熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Final關鍵字對JVM類加載器的影響

2013-11-23 19:30:14  來源: Java核心技術 
      當一個類中有聲明為static final的變量這樣的變量對類的加載器有一定的影響首先看看下面的例子
   

  

 
    因為a是static final變量且它等於/在編譯的時候就可以知道它的值所以直接訪問a的值不會引起FinalTest類的初始化作為表現也就是static靜態代碼快不會被加載
   
    運行結果為
   

  

 
    在看一個例子
   

  

 
    這個static final變量a因為i在編譯的時候無法知道它的確切的值所以只有等到運行的時候才能知道所以自己訪問FinalTesta會引起FinalTest類的初始化也就是static靜態代碼快的加載
   
    運行結果為
   

  

 
    下面的例子是講當子類被主動訪問的時候會引起其直接父類的初始化
   

  

 
    因為直接訪問Childb會先初始化Parent類然後初始化Child類
   
    運行結果為
   

  

 
    如果通過子類直接訪問父類的變量只會初始化父類而不會初始化子類
   

  

    直接訪問Parent類的a變量則只會直接初始化parent類不會初始化Child類
   
    運行結果如下

  


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26994.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.