Я знал, что JVM поддерживает пул строковых литералов для повышения производительности и поддержки памяти JVM, и узнал, что строковый литерал поддерживается в пуле строк. Но я хочу прояснить кое-что, связанное с пулом строк и строковым объектом, созданным в куче.
Пожалуйста, поправьте меня, если мое объяснение неверно.
String s = "abc";
Если указанная выше строка выполняется, строковый литерал «abc» добавляется в пул строк, если он не существует в пуле. В куче создается строковый объект, и ссылка s
будет указывать на литерал в пуле.
Вопросы:
Я не уверен, где именно создается строковый объект, если он указывает на строковый литерал в пуле.
Спасибо.