Java has only two kinds of variable types: primitive types and reference types. A primitive type defines what kind of value the variable can hold and how big or small this value can be. We will discuss primitive types in this section.
A reference type allows us to assign only one kind of value to the variable – the reference to the memory area where an object is stored. We will discuss the reference types in the next section, Reference types and String.
Primitive types can be divided into two groups: the Boolean type and the numeric types. The numeric-types group can be split further into integral types (byte, short, int, long, and char) and floating-point types (float and double).
Each primitive type is defined by a corresponding reserved keyword, listed in the Reserved and restricted keywords section.