Q
在Java中
0
A
回答
2
是對sc1
的任何更改都將反映在sc2
中,因爲它們都指向相同的對象。
所以說,如果這是SomeClass
public SomeClass {
String name;
//getter setter
}
結構,如果你這樣做
SomeClass sc1 = new SomeClass();
SomeClass sc2 = sc1;
sc1.setName("Hello");
System.out.println(sc2.getName()); // this will print hello since both sc1 and sc2 are pointing to the same object.
但是,如果你這樣做:因爲
sc1.setName("Hello");
sc1 = null;
System.out.println(sc2.getName()); // this will print hello since only sc1 is null not sc2.
2
是淡然的,他們都提到同一個對象。
0
sc2
和sc1
是單獨的變量,它們都包含引用到同一個對象(這是一個重要的區別!)。通過這兩個引用,任何對對象狀態的更改都將同樣可見。所以
sc2.setField("hi!");
sc1.getField(); // returns "hi!"
但是,更改引用本身對其他沒有任何影響:
sc2 = null;
sc1.getField(); // still returns "hi!", no exception
1
它像 - 讓SC1的其他名稱SC2。
相關問題
- 1. 覆蓋在Java在Java中
- 2. 中斷在Java中
- 3. 中心在java中
- 4. 在file.lists()在Java中
- 5. 存在在Java中
- 6. 在Java中
- 7. ContainerSelectionDialog在Java中
- 8. 在Java中
- 9. 在Java中
- 10. 在java中
- 11. 在Java中
- 12. 在Java中
- 13. Object.callGenericMethod()在Java中
- 14. 在Java中
- 15. 在java中
- 16. 在Java中
- 17. 在java中
- 18. 在java中
- 19. 在Java中
- 20. Serilization在Java中
- 21. 在Java中
- 22. 在Java中9
- 23. 在Java中
- 24. MAGIMAGEHEADER在java中
- 25. 在Java中
- 26. 在Java中
- 27. 在Java中
- 28. 在Java中
- 29. 在Java中
- 30. 在Java中
你可能試過 –