The difference between primitive and non-primitive data types are as follows: Primitive types are predefined in Java. Non-primitive types are created by the programmer and is not defined by Java . Non Primitive types can be used to call methods to perform certain operations, while primitive types cannot.