Kısa cevap: evet, boole değerleri 32 bitlik varlıklar olarak işlenir, ancak boole dizileri öğe başına 1 bayt kullanır.
Daha uzun yanıt: JVM, yerel değişkenleri, yöntem argümanlarını ve ifade değerlerini tutmak için kullanılan 32 bitlik bir yığın hücre kullanır. 1 hücreden daha küçük olan temel öğeler doldurulur, 32 bitten büyük (uzun ve çift) temel öğeler 2 hücre alır. Bu teknik, işlem kodlarının sayısını en aza indirir, ancak bazı özel yan etkilere sahiptir (baytları maskeleme ihtiyacı gibi).
Dizilerde depolanan ilkel öğeler 32 bitten daha azını kullanabilir ve bir diziden ilkel değerleri yüklemek ve depolamak için farklı işlem kodları vardır. Boole ve bayt değerlerinin her ikisi de baload
ve bastore
işlem kodlarını kullanır; bu, boole dizilerinin öğe başına 1 bayt alması anlamına gelir.
Bellek içi nesne düzeni söz konusu olduğunda, bu "özel uygulama" kuralları kapsamındadır , 1 bit, 1 bayt olabilir veya 64 bitlik çift sözcük sınırına hizalanmış başka bir posterde belirtildiği gibi olabilir. Büyük olasılıkla, temel alınan donanımın temel kelime boyutunu (32 veya 64 bit) alır.
Booleanların kullandığı alan miktarını en aza indirgemeye gelince: bu, çoğu uygulama için gerçekten bir sorun değil. Yığın çerçeveleri (yerel değişkenleri ve yöntem argümanlarını tutan) çok büyük değildir ve büyük şemada bir nesnedeki ayrı bir boole de o kadar büyük değildir. Çok sayıda boole içeren çok sayıda nesneniz varsa, alıcılarınız ve ayarlayıcılarınız aracılığıyla yönetilen bit alanlarını kullanabilirsiniz. Bununla birlikte, CPU süresinde muhtemelen bellekteki cezadan daha büyük bir ceza ödersiniz.