Пример:
String s = "cat";
s = s + "-" + s;
В примере который показывает как это работает "под капотом", я увидел следующее:
String s = "cat";
StringBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();
У меня несколько вопросов:
1. Пример который показывает как это работает под капотом, это правильный пример?
2. Как мне допустим самому посмотреть как работает это всё под капотом, просто этот пример получил на учебе
Самый простой способ это сделать тестовый класс и запустить всё это в дебаггере. Здесь Прям очень всё подробно расписано. Вот здесь расписано про саму строку, а именно, что она неизменна. Следовательно, если вы что-то хотите к ней присоединить, то у вас создастся новый объект с новым значением, а не просто присоединится что-то.
То, что у вас выполнено тут
String s = "cat";
StringBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();
предподчтительней к использованию. У вас все объединения будут выполнены через StringBuilder ,а в s запишется новое значение, которое будет указывать на другую ячейку памяти, аналогично и вашему изначальному примеру.
Продвижение своими сайтами как стратегия роста и независимости