TGViewer
Java Backend | YeaHub Java Backend | YeaHub @yeahub_java_backend · 920 subscribers
Post #376 334
#полезное
👨‍💻 Задумывались, почему оператор == в Java работает для одних значений Integer, а для других — нет?

Дело в механизме, который называется Integer Caching.

JVM кэширует объекты Integer в диапазоне от -128 до 127. Когда вы присваиваете значение в этом диапазоне, Java переиспользует один и тот же объект из кэша. Поэтому две переменные с одинаковым числом в этом диапазоне указывают на одну и ту же ссылку, и == возвращает true

Но за пределами диапазона, например для 128 или 1000, каждый раз создается новый объект. Ссылки разные, поэтому == вернет false, даже если значения совпадают.

Главное, что стоит запомнить: == сравнивает ссылки на объекты, а не сами значения. Чтобы сравнить числа, всегда используйте .equals()

Этот трюк с кэшированием также работает для Byte, Short, Character (до 127) и Long (от -128 до 127)

👉Новости 👉База вопросов
  • 👍 2
More from @yeahub_java_backend
  1. Oct 8, 2026#Собес #aggregate #function 🤔 Что такое агрегатные функции в SQL? 💬 Кратко: Агрегатные ф…
  2. Oct 7, 2026#Собес #. 🤔 DIS Group задача . 💬 Вопросы: - Что такое Git и GitHub? 👉 Все вопросы из эт…
  3. Oct 5, 2026#Собес #bucket #hashmap 🤔 Что такое bucket в HashMap и что в нем хранится? 💬 Кратко: Buc…
  4. Oct 2, 2026#documentation #яндекс #алгоритмы 📚 Структурный подход к алгоритмам: от теории к практике…
  5. Oct 1, 2026#Собес #LLM #RAG #metrics 🤔 Какие метрики собирал в проектах с LLM/RAG? Как доставлял их…
  6. Sep 30, 2026#Собес #oop #java #spring 🤔 Middle Java Backend разработчик в компанию Яндекс (Вертикали)…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →