Назначение объекта Java

Я новичок в Java, и у меня есть некоторые вопросы, касающиеся назначения объектов. Например,

Test t1 = new Test();
Test t2 = t1;
t1.i=1;

Предполагая переменнуюi определяется внутри класса Test, могу ли я считать, что и t1, и t2 указывают на один и тот же объект, где находится модификацияt1.i=1 влияет на обаt1 а такжеt2? На самом деле я проверил это и, похоже, я был прав. Однако, когда я пытаюсь сделать то же самое наStringмодификация происходит только на одной стороне, где другая сторона не затронута. В чем причина этого?

Изменить: случай, который я пытался с String.

String s1 = "0";
String s2 = s1;          
s1 = "1";
System.out.println(s1);
System.out.println(s2);

Я осознаю свою ошибку, протестировав кейсы на String, поскольку она неизменна. Ситуация, где я думалs1="1" изменение строки фактически возвращает ссылку на "1" на с1. Тем не менее мой вопрос остается. Есть лиTest t2 = t1; вызвать, что и t2, и t1 указывают на один и тот же объект или у каждого теперь есть свои собственные объекты? Применяется ли эта ситуация ко всем объектам на Java?

Ответы на вопрос(6)

Ваш ответ на вопрос