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:/>
新聞熱點
疑難解答