Java中使用final修飾符需要注意的地方
對與java中的final變量,java編譯器是進行了優化的。每個使用了final類型變量的地方都不會通過連接而進行訪問。比如說Test類中使用了Data類中一個final的int數字fNumber=77,這時候,java編譯器會將77這個常數編譯到Test類的指令碼或者常量池中。這樣,每次Test類用到fNumber的時候,不會通過引用連接到Data類中進行讀取,而是直接使用自己保存在類文件中的副本。
用程序說話:
執行命令和結果:
用程序說話:
| C:>javac Test.javaTest.java: public class Test{ public static void main(String[] args){ System.out.println(Data.fNumber); } } Data.java: public class Data{ public static final int fNumber=77; } |
執行命令和結果:
| C:>javac Test.javaC:>javac Test.java C:>java Test 77 C:> |