The Java Virtual Machine specification does not define a precise size for boolean values. Different JVM implementations may use different amounts of memory to store boolean values - some use 1 bit (with bit-packing), others use 1 byte. This is intentionally left implementation-dependent for optimization purposes.