Вопрос по основам Java
Михаил Прокудин

Вопрос 1 : В учебнике Шилтда написано, что "объект класса String является неизменяемым. Один раз создал, больше не можешь его менять. Если что - можешь создать новую строку с необходимым содержимым". Объясните пожалуйста, в каком это смысле сказано? Я проверил. Изменить могу.
Вопрос 2: По идее такой объект непримитивный.
То есть в коде

String n = "Hello,";
System.out.println(n);
String m=n;
n = n + "World";
System.out.println(m);
System.out.println(n);

происходит передача ссылки на строку. Я не произвожу вызов конструктора. Почему при этом все равно создается новая строка? Почему изменяя строку n, строка m не меняется?
P.S. Мне почему-то кажется, что ответ на оба вопроса один и тот же, но ответьте пожалуйста максимально подробно. В инете норм ответа не нашел.

2 чел.