Non-primitive data types are also called as reference types because they refer to objects.
Examples: Strings, Arrays, Classes, Interface, etc. are non-primitive type.
Note: Non-primitive data type also called a User Defined Type when declaring an object with Classes and Interfaces names.
Primitive Vs Non-Primitive
These are the main difference between primitive and non-primitive data types:
- Primitive types are predefined in Java. While Non-primitive types are created by the programmer and is not defined by Java (except for String).
- Non-primitive types also be used to call methods to perform certain operations, while primitive types cannot.
- The primitive type has always had value, while non-primitive types can be null.
- The primitive type starts with a lowercase letter, while non-primitive types start with an uppercase letter.
- The primitive type size depends on the data type, while non-primitive types have all the same size.