Java 对象赋值
我是Java的新手,我有一些关于对象分配的问题。例如
Test t1 = new Test();
Test t2 = t1;
t1.i=1;
假设变量是在 Test 类中定义的,那么假设 t1 和 t2 都指向同一个对象,其中修改会影响和,我是否正确?实际上,我测试了它,似乎我是对的。但是,当我在 上尝试同样的事情时,修改只发生在另一侧不受影响的一侧。这背后的原因是什么?i
t1.i=1
t1
t2
String
编辑:我用String尝试的案例。
String s1 = "0";
String s2 = s1;
s1 = "1";
System.out.println(s1);
System.out.println(s2);
我通过在String上测试案例来意识到我的错误,因为它是不可变的。我认为修改字符串的情况实际上是将“1”的引用返回到s1。尽管如此,我的问题仍然存在。是否会导致 t2 和 t1 都指向同一个对象,或者每个对象现在都有自己的对象?这种情况是否适用于 Java 上的所有对象?s1="1"
Test t2 = t1;