powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как после этого String может называться immutable?
3 сообщений из 3, страница 1 из 1
Как после этого String может называться immutable?
    #38584979
Mr.Genius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

В Java я новичок, скажу сразу.

Нашёл парадоксальный для меня пример:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Clazz {

	public static void main(String[] args) {
		String result = "";
		for (int i=0; i<10; i++) {
			result = result + "1";			
		}
		System.out.println(result);
	}

}



Код, разумеется, выводит "1111111111"

Я понимаю, что при компиляции тут создаётся StringBuffer, затем вызывается append, и в конце toString().

И всё это потом превращается в сравнительно долго выполняющийся байт-код.

НО! В чём тогда суть заявления, что String это immutable object, если можно производить такие операции?
...
Рейтинг: 0 / 0
Как после этого String может называться immutable?
    #38584993
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.GeniusЯ понимаю, что при компиляции тут создаётся StringBuffer, затем вызывается append, и в конце toString().

Не совсем понимаете. StringBuilder создаётся только для присвоения внутри цикла. За пределами цикла его нет. И это не так важно.

Mr.GeniusИ всё это потом превращается в сравнительно долго выполняющийся байт-код.
Потому что каждая итерация в цикле создаёт новый объект String.

Mr.GeniusНО! В чём тогда суть заявления, что String это immutable object, если можно производить такие операции?
В том что у вас после работы цикла в памяти живет десяток объектов-строк. А если бы строка была mutable, тогда хватило бы и одного объекта.
...
Рейтинг: 0 / 0
Как после этого String может называться immutable?
    #38585010
Mr.Genius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, спасибо. Теперь всё встало на свои места
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как после этого String может называться immutable?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]