Java Interview Tasks
4.53K subscribers
211 photos
1 video
1 file
138 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks
Download Telegram
🔍 Ответ на задачу про Integer: Когда 100 == 100, а 1000 != 1000? 🧐

Многие начинающие (и не только) джависты спотыкаются на сравнении объектов-оберток через ==.
Объяснение:
В Java существует Integer Cache. При автоупаковке (autoboxing) вызывается метод Integer.valueOf(int).
Для экономии памяти JVM кеширует объекты Integer в диапазоне от -128 до 127.
Поэтому a и b ссылаются на один и тот же объект в кеше — и == возвращает true.
Для числа 1000 кеша нет, создаются два разных объекта в куче — и == (сравнение ссылок) возвращает false.

Вывод:
Никогда не сравнивайте объекты-обертки через ==, если только вы не хотите проверить идентичность ссылок.

⚡️ Не перепутайте:
- Для сравнения значений объектов всегда используйте .equals().
- Помните, что верхнюю границу кеша можно изменить через флаг -XX:AutoBoxCacheMax=<size>.

Хочешь больше таких нюансов? Ставь 🔥 и делись с коллегами!
#java #integer #cache #jvm #autoboxing #interview #java_interview_tasks
👍7🔥61
🔍 Ответ на задачу про String Pool: Магия intern() или где живет ваша строка? 🧵

Сравнение строк в 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