Primitive Types vs. Reference Types
Types are divided into primitive types and reference types.
The primitive types are boolean, byte, char, short, int, long, float and double.
All nonprimitive types are reference types.
A primitive-type variable can store exactly one value of its declared type at a time.
Primitive-type instance variables are initialized by default—variables of types byte, char, short, int, long, float and double are initialized to 0, and variables of type boolean are initialized to false.
You can specify your own initial value for a primitive-type variable by assigning the variable a value in its declaration.
Programs use variables of reference types (normally called references) to store the locations of objects in the computer’s memory.
Such a variable is said to refer to an object in the program.
Objects that are referenced may each contain many instance variables and methods.
Reference-type instance variables are initialized by default to the value null.
A reserved word that represents a "reference to nothing".
When using an object of another class, a reference to the object is required to invoke (i.e., call) its methods.
Also known as sending messages to an object.