In Java, data types are split into two big families: primitive types and non-primitive (reference) types.
🔹 Primitive Data Types
These are the basic building blocks. They’re predefined by Java and store simple values directly in memory. There are 8 of them:

These types are stored in stack memory and are fast to access.
🔸 Non-Primitive (Reference) Data Types
These are more complex structures that refer to objects in memory. They include:
String
- Arrays (
int[]
,String[]
, etc.) - Classes and Objects (
Scanner
,Random
, custom classes) - Interfaces
Unlike primitive types, these can hold multiple values or encapsulate behavior.