Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
Наука · 28 июня 2026 г.
🧠 Как Java хранит boolean в памяти? — 28 июня 2026 г. в 20:19:51.624
🧠 Как Java хранит boolean в памяти? Сегодня я покажу вам, почему boolean в Java — это не просто true или false. А за этим простым типом скрывается интересный нюанс, особенно если ты задумываешься об экономии памяти. В Java нет отдельного типа, который занимает всего 1 бит. Хотя логично было бы ожидать, что boolean — это один бит (true/false), на самом деле в памяти он занимает 1 байт (а иногда и больше, в зависимости от структуры объекта). Пример: public class Flags { boolean flag1; boolean flag2; boolean flag3; } Ты думаешь — три бита. Но JVM выравнивает поля, и из-за этого объект может занимать 16 байт или больше, в зависимости от архитектуры. Почему так? 📌 Причина: JVM упрощает модель памяти ради производительности — доступ к байтам быстрее, чем к битам. Нет битовых сдвигов, масок и лишней логики. 💡 Что делать, если хочется сэкономить память? Используй BitSet: BitSet flags = new BitSet(3); flags.set(0, true); Это уже реальная битовая структура. Отличный выбор, если у тебя десятки или сотни логических флагов. А ты знал об этом нюансе хранения boolean? Пиши в комментариях, сталкивался ли с перерасходом памяти из-за простых типов. 👉 @BookJava

