A primitive type is predefined by the Java language and named by its reserved keyword (§3.9):
PrimitiveType:
NumericType
booleanNumericType:
IntegralType
FloatingPointType IntegralType: one of
byte short int long charFloatingPointType: one of
float double
Primitive values do not share state with other primitive values. A variable whose type is a primitive type always holds a primitive value of that same type. The value of a variable of primitive type can be changed only by assignment operations on that variable.
The numeric types are the integral types and the floating-point types.
The integral types are byte, short, int, and long, whose values are 8-bit, 16-bit, 32-bit and 64-bit signed two's-complement integers, respectively, and char, whose values are 16-bit unsigned integers representing Unicode characters.
The floating-point types are float, whose values are 32-bit IEEE 754 floating-point numbers, and double, whose values are 64-bit IEEE 754 floating-point numbers.
The boolean type has exactly two values: true and false.