Junky's IT Notebook

          統(tǒng)計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          使用Java中的final變量需要注意的地方

          對與java中的final變量,java編譯器是進行了優(yōu)化的。每個使用了final類型變量的地方都不會通過連接而進行訪問。比如說Test類中使用了Data類中一個final的int數(shù)字fNumber=77,這時候,java編譯器會將77這個常數(shù)編譯到Test類的指令碼或者常量池中。這樣,每次Test類用到fNumber的時候,不會通過引用連接到Data類中進行讀取,而是直接使用自己保存在類文件中的副本。用程序說話: Test.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; } 執(zhí)行命令和結果: Microsoft Windows XP [版本 5.1.2600] (C) 版權所有 1985-2001 Microsoft Corp.


          對與java中的final變量,java編譯器是進行了優(yōu)化的。每個使用了final類型變量的地方都不會通過連接而進行訪問。比如說Test類中使用了Data類中一個final的int數(shù)字fNumber=77,這時候,java編譯器會將77這個常數(shù)編譯到Test類的指令碼或者常量池中。這樣,每次Test類用到fNumber的時候,不會通過引用連接到Data類中進行讀取,而是直接使用自己保存在類文件中的副本。
          用程序說話:
          Test.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;?
          }

          執(zhí)行命令和結果:

          Microsoft Windows XP [版本 5.1.2600]
          (C) 版權所有 1985-2001 Microsoft Corp.

          C:\Documents and Settings\zangmeng>cd ..

          C:\Documents and Settings>cd ..

          C:\>javac Test.java

          C:\>java Test
          77

          C:\>


          這時候,我們更改Data.java的內容:
          public class Data{
          ?public static final int fNumber=777;?
          }

          然后執(zhí)行如下命令:

          C:\>javac Data.java

          C:\>java Test
          77

          C:\>

          這里我們看到,雖然Data.java中的fNumber已經(jīng)更改為777,而且已經(jīng)重新編譯了,但是因為編譯器把fNumber的副本保存Test類中,所以在重新編譯Test類的前,Test類一直把fNumber認為是77而不是777。下面我們變異Test.java,再執(zhí)行,看看結果。

          C:\>javac Test.java

          C:\>java Test
          777

          C:\>
          這時候,我們看到,重新編譯的Test類將新的777數(shù)值封裝到了自己類中。

          整個過程如下:
          Microsoft Windows XP [版本 5.1.2600]
          (C) 版權所有 1985-2001 Microsoft Corp.

          C:\Documents and Settings\zangmeng>cd ..

          C:\Documents and Settings>cd ..

          C:\>javac Test.java

          C:\>java Test
          77
          //在這里改變了Data.java的內容
          C:\>javac Data.java

          C:\>java Test
          77

          C:\>javac Test.java

          C:\>java Test
          777

          C:\>

          您認為本文應該得????????共有8人參與打分

          posted on 2007-03-16 13:39 junky 閱讀(319) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 高密市| 武鸣县| 萨迦县| 固安县| 淮安市| 河北区| 临海市| 汉中市| 调兵山市| 东方市| 菏泽市| 忻城县| 那坡县| 赤水市| 甘德县| 海淀区| 塘沽区| 蓝田县| 泾源县| 德江县| 晋宁县| 宜川县| 桃园市| 彝良县| 德兴市| 永泰县| 宁武县| 普兰店市| 博湖县| 莱阳市| 子洲县| 平乐县| 灯塔市| 三门峡市| 丽水市| 汶上县| 仪陇县| 河西区| 突泉县| 溧水县| 怀化市|