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中
你可能试过 –