La especificación de la máquina virtual de Java dice que hay un soporte limitado para los tipos primitivos booleanos .
No hay instrucciones de máquina virtual Java dedicadas exclusivamente a operaciones con valores booleanos. En su lugar, las expresiones en el lenguaje de programación Java que operan con valores booleanos se compilan para utilizar valores del tipo de datos int de la máquina virtual Java.
Lo anterior implica (aunque puedo haberlo malinterpretado) que el tipo de datos int se usa cuando se opera con valores booleanos, pero esta es una construcción de memoria de 32 bits. Dado que un booleano solo representa 1 bit de información:
- ¿Por qué no se usa un byte, o un tipo corto, como proxy para un booleano en lugar de int?
- Para cualquier JVM dada, ¿cuál es la forma más confiable de averiguar exactamente cuánta memoria se usa para almacenar un tipo booleano?