A boolean in Java is either 'true' or 'false' and that磗 it. You don磘 have to know it磗 size, it is not like C where you can assign a 1 o 0 to a boolean. Perhaps you can undestand better in this way: an int takes 32 bits, a char 16 bits (unsigned), therefore a char can be automatically upcasted to an int (a char size is smaller so there is no problem); a boolean can磘 cause it can磘 take the values 0 or 1, it is JVM dependent.