Когда выполняешь String s = new String("HelloWorld");, всего создаётся два объекта.
"HelloWorld"new явно создаёт этот объектs ссылается на этот объект в куче, а не на объект из пула константПул констант String: "HelloWorld" (Объект 1)
↓
Куча: new String("HelloWorld") (Объект 2) ← s ссылается на этот
Ключевое различие состоит в том, что:
"HelloWorld" автоматически создаёт один объектnew String() создаёт второй отдельный объектЭто важное понятие для понимания управления памятью в Java и того, почему ключевое слово new приводит к созданию отдельного объекта, вместо того чтобы просто вернуть ссылку из пула констант.
Когда выполняется String s = new String("HelloWorld");, переменная s содержит ссылку на объект String, хранящийся в пуле констант.
Новый — ещё не проверен сообществом
Вы