🔍 Ответ на задачу про String Pool: Магия intern() или где живет ваша строка? 🧵
Сравнение строк в Java через
Объяснение:
-
-
- Метод
Вывод:
⚡️ Не перепутайте:
-
-
-
#java #string #stringpool #intern #jvm #interview #java_interview_tasks
Сравнение строк в Java через
== — это классика интервью. Но что произойдет, если мы начнем вручную управлять пулом строк?Объяснение:
-
s1 — это строковый литерал, он сразу попадает в String Pool.-
s2 создается через new String(), поэтому в куче (heap) создается новый объект, отличный от того, что в пуле. Сравнение s1 == s2 дает false.- Метод
intern() ищет строку в пуле. Если она там есть, он возвращает ссылку на объект из пула. Так как "Java" уже там была (от s1), s3 получит ту же самую ссылку.Вывод:
s1 == s3 вернет true, так как обе переменные теперь ссылаются на один и тот же объект в String Pool.⚡️ Не перепутайте:
-
== сравнивает ссылки.-
equals() сравнивает содержимое.-
intern() — полезный инструмент для экономии памяти, если у вас много повторяющихся строк, созданных динамически.#java #string #stringpool #intern #jvm #interview #java_interview_tasks
1👍6