Для оптимальної роботи програми JVM ділить пам'ять на область стеку (stack) та область купи (heap). Щоразу, коли ми оголошуємо нові змінні, створюємо об'єкти або викликаємо новий метод, JVM виділяє пам'ять для цих операцій у стеку чи купі.
У стандартній реалізації Sun JVM та Oracle HotSpot JVM тип boolean займає 4 байти (32 біти), як і тип int.
Зазвичай пам'ять ділиться на великі частини: стек і купа. Майте на увазі, що розмір типів пам'яті на цьому малюнку не пропорційний реальному розміру пам'яті. Купа – це величезний обсяг пам'яті порівняно зі стеком.