0
A
回答
1
int x = 1
int y = x;
x = 5;
原始值在這條線int y=x;
複製這是不的哪個x
指向的對象的參考複製。
參考: http://javarevisited.blogspot.hk/2015/09/difference-between-primitive-and-reference-variable-java.html Is Java "pass-by-reference" or "pass-by-value"?
+0
@Savage - 如果你沒有答案,你可以接受答案 – vlaxmi
1
因爲y
是x
一個單獨的變量,儘管的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」的紙張上的編號沒有改變。
變量的工作原理與此類似。
相關問題
- 1. 爲什麼LinkedList在java中沒有initialCapacity?
- 2. 爲什麼在java中沒有sizeof
- 3. 爲什麼Java沒有宏?
- 4. 爲什麼java中沒有頭文件?
- 5. 爲什麼Java中沒有靜態類
- 6. 爲什麼Java中沒有「Equlable」接口?
- 7. 爲什麼Java在Java中沒有指針時會出現「NullPointerException」?
- 8. 爲什麼Java中沒有內存區域沒有gc發生?
- 9. 爲什麼Java 8沒有「myArray.stream()」函數?
- 10. Java爲什麼沒有ceil(float)?
- 11. int爲什麼沒有改變? java的
- 12. 爲什麼Java沒有文件拷貝?
- 13. 爲什麼Long值在java中沒有正確打印?
- 14. 爲什麼Spark DataFrame在Java中沒有saveAsORCFile()方法?
- 15. 爲什麼這個python腳本沒有在java中
- 16. 爲什麼在Java SE 6 apidoc中沒有記錄com.sun.media.sound包?
- 17. 爲什麼在Java中沒有Hashable接口
- 18. 爲什麼在這個java代碼中沒有競爭條件?
- 19. 爲什麼Java在Map中沒有putIfAbsent(key,supplier)方法?
- 20. 爲什麼在java中沒有辦法通過引用傳遞
- 21. 爲什麼在Java中的String.Replace之後沒有更改String值?
- 22. 爲什麼在.NET中沒有Java的setAccessible?
- 23. 爲什麼在java 8中沒有原始的BiConsumer?
- 24. 爲什麼在Java中沒有@Implements註釋?
- 25. 爲什麼在Java中沒有WeakList和WeakSet實現?
- 26. 爲什麼有...在Java函數中?
- 27. 爲什麼在java中有變量
- 28. 爲什麼我在Java String中有?
- 29. 爲什麼CFStringEncodings在Swift中沒有UTF8?
- 30. 爲什麼在C++中沒有static_if 11
由於java原始類型是不可變的 –
由於您只將y的值設置爲當前的x值,而不是它的內存指針,所以可以將一個值分配給'x'的引用而不是'x' – Jens
。 – abbath