Primitive Types vs Reference Types

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).