2017-03-29 70 views
0

值變化我只是覺得這個問題:使用的Java爲什麼沒有在Java中

int x = 1 
int y = x; 
x = 5; 

爲什麼不y = 5現在?

+1

由於java原始類型是不可變的 –

+0

由於您只將y的值設置爲當前的x值,而不是它的內存指針,所以可以將一個值分配給'x'的引用而不是'x' – Jens

+0

。 – abbath

回答

1

因爲yx一個單獨的變量,儘管的x原始值初始化。

y不是參考x,或作爲x到相同對象的引用。 (int原語在Java中的類型)。

1
int x = 1; //Some memory is initialized(say at location ox00001) and x is pointing to that 

int y = x ; //Some memory is initialized(say at location ox00050) and value of x is copied to that memory 

x = 5 ; //value of memory location of x (i.e. ox00001) is changed to 5 but is not impacting memory location of y 

,但在非原始數據的情況下鍵入它共享存儲器位置,而不是數據。
僅供參考http://javarevisited.blogspot.in/2015/09/difference-between-primitive-and-reference-variable-java.html

0

取出兩張紙。

一個寫「x」,另一個寫「y」。

現在在標有「x」的紙上寫上「1」。 (int x = 1;

然後把你在「x」紙上看到的數字寫在「y」紙上。 (int y = x;

然後清除「x」紙上的數字並在其中寫入「5」。 (x = 5;

注意到標籤爲「y」的紙張上的編號沒有改變。
變量的工作原理與此類似。

相關問題