Сколько объектов String создано в Stringpool?

Рассмотрим следующий пример:

Строка s1 "Привет";

Строка s2 = "Мир";

Строка s3 = s2 +s3;

В приведенном выше примере, сколько объектов создано в Stringpool? Добавлена ​​ли строка s3 в Stringpool или это отдельный объект в памяти кучи, или JVM создает новый объект в куче и добавляет его также в stringpool? Заранее спасибо:)

1 ответ

В этом случае 3 строки будут созданы в пуле строк. Один для Hello, один для WorLd и один для s3, который теперь HelloWorld, поскольку строки являются неизменяемыми.

Даже если вы делаете что-то вроде s1=s1+"World1"; тогда также это будет новая строка (HelloWorld1) в пуле строк, так как это будет новая строка, созданная для этой модификации, а старая ссылка s1 на Hello будет по-прежнему сохраняться в виде строки без ссылки.

Другие вопросы по тегам