https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html
Primitive Types
A primitive type is predefined by the Java programming language and named by its reserved keyword (§3.9): boolean, integer, long, float, double, byte, short, char.
Reference Types
There are four kinds of reference types: class types (§8), interface types (§9), type variables (§4.4), and array types (§10).