Пример:
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
запишется новое значение, которое будет указывать на другую ячейку памяти, аналогично и вашему изначальному примеру.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я определяю форму для тени моего customview следующим способом:
При создании нового product'а мне понадобилось получить его название, но, при использовании метода getName(), я получаю например: Product@11123
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Подскажите пожалуйста, правильно ли я очищаю глобальные массивы из памяти, и надо ли это вообще делать?