Those are the sizes of primitive variable types in bits as they will look like from inside your Java program. For a boolean, in principle only one bit is needed.

But note that a particular JVM implementation might use more memory for primitive types on the underlying platform. For example, on some processors working with 32-bit integers is more efficient than with 8-bit bytes, so the JVM will actually use 32 bits for a variable of type byte. In your Java program however, you will not notice this - there, a variable of type byte is always 8 bits, regardless of how the JVM represents it on the underlying platform.

There is no (easy) way to find out in a Java program how much memory is actually used for a primitive type of a certain size - those things are implementation details of the JVM that your program is running on, which you're not supposed to be concerned with from inside your program.