我有

  SomeClass sc1 = new SomeClass();
  SomeClass sc2 = sc1;


sc2是否会由于sc1而发生变化(sc1更改时)?
如果没有,该怎么办?

最佳答案

是的,对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.

09-09 21:27