国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java的final變量需要注意地方

2019-11-18 11:57:33
字體:
來源:轉載
供稿:網友

    對與java中的final變量,java編譯器是進行了優化的。每個使用了final類型變量的地方都不會通過連接而進行訪問。比如說Test類中使用了Data類中一個final的int數字fNumber=77,這時候,java編譯器會將77這個常數編譯到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; 
}

執行命令和結果:

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; 
}

然后執行如下命令:

C:/>javac Data.java

C:/>java Test
77

C:/>

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

C:/>javac Test.java

C:/>java Test
777

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

整個過程如下:
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:/>



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富民县| 黄浦区| 自治县| 陇南市| 保康县| 台州市| 太白县| 吉木萨尔县| 鲜城| 内黄县| 南平市| 固安县| 航空| 曲阜市| 扬州市| 香港| 佛坪县| 玉门市| 兴国县| 呼玛县| 尼木县| 焦作市| 金山区| 北宁市| 宣城市| 望奎县| 武清区| 呼伦贝尔市| 安岳县| 温泉县| 榆林市| 江北区| 镶黄旗| 恩施市| 财经| 肥乡县| 罗田县| 合阳县| 文安县| 丰台区| 德格县|