TGViewer
Программист живёт нормально Программист живёт нормально @programmers_ed · 1.99K subscribers
Post #10 310
#java #junior
Где хранятся примитивные поля объектов? 🧳

Ответ односложен - в куче. Но почему же так происходит? Почему примитивные поля не могут храниться в стеке? 💆‍♀️

Для этого давайте откатимся назад и обсудим, что же такое стек?

Стековая память в Java работает по схеме LIFO (Последний зашел-Первый вышел)

Каждый раз, когда мы вызываем метод, в стеке формируется новый блок, который содержит все примитивы и ссылки на объекты (НЕ САМИ ОБЪЕКТЫ, они хранятся в куче)🧶

Как только метод завершается - этот блок УДАЛЯЕТСЯ из стека. Соответственно, все примитивы и ссылки на объекты удаляются из стека в этот же момент. Они больше нам не нужны, потому что все расчёты с ними мы завершили (как вы знаете, область доступности переменной в Java ограничивается блоком = фигурными скобками, в которых она объявлена)

Однако, если бы в стеке находились примитивные поля объектов, тогда бы при завершении метода все примитивные поля этого объекта просто-напросто удалялись. Мы бы получали картину, как на скриншоте ниже.

Именно для сохранения целостности объекта все поля этого объекта сохраняются в КУЧЕ, и никак иначе🕶
  • 👍 4
More from @programmers_ed
  1. Jun 12, 2026За 2025 и часть 2026 удалось выделить прилично времени на различное обучение. Тут и обучен…
  2. May 17, 2026Решил для себя, что максимально оттяну момент, когда начну в работе использовать ИИ-агенты…
  3. Mar 23, 2026Пришло время рассказать о моем обучении на мини-курсе Стратоплана «Основа», который стал п…
  4. Mar 22, 2026Недавно осознал такую мысль Пока ты начинаешь осваивать программирование - некоторые подхо…
  5. Feb 4, 2026Ну что, мое обучение в Стратоплане продолжается На этот раз успели разобрать много полезно…
  6. Feb 1, 2026Post #434
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 →