Non-primitive data types are called reference types because they refer to objects.
The main difference between primitive and non-primitive data types are:
- Primitive types are predefined (already defined) in Java. Non-primitive types are created by the programmer and is not defined by Java (except for 
String). - Non-primitive types can be used to call methods to perform certain operations, while primitive types cannot.
 - A primitive type has always a value, while non-primitive types can be 
null. - A primitive type starts with a lowercase letter, while non-primitive types starts with an uppercase letter.
 - The size of a primitive type depends on the data type, while non-primitive types have all the same size.
 
Examples of non-primitive types are Strings, Arrays, Classes, Interface, etc. You will learn more about these in a later chapter.
Practice Excercise Practice now