Data types define the type of data a variable can hold. They are essential for declaring variables and performing operations on data. Java has two main categories of data types:
- Primitive Data Types – Simple values like numbers, characters, or true/false.
- Non – Primitive / Reference Data Types – Complex types like Strings, Arrays, and Objects.
Primitive Data Types
Data Type | Size | Stores | Example |
---|---|---|---|
byte | 1 byte | Small integers (-128 to 127) | byte age = 25; |
short | 2 bytes | Medium integers (-32,768 to 32,767) | short year = 2025; |
int | 4 bytes | Whole numbers | int salary = 50000; |
long | 8 bytes | Large numbers | long distance = 123456789L; |
float | 4 bytes | Decimal numbers | float price = 19.99f; |
double | 8 bytes | Precise decimals | double pi = 3.14159; |
char | 2 bytes | Single character | char grade = 'A'; |
boolean | 1 bit | True/False | boolean isJavaFun = true; |
Reference Data Types
Data Type | Description | Example |
---|---|---|
String | A sequence of characters | String name = "Java"; |
Array | A collection of similar types of elements | int[] numbers = {1, 2, 3, 4}; |
Class | A blueprint for creating objects | class Dog { String breed = "Labrador"; } |
Object | An instance of a class | Dog pet = new Dog(); |
Interface | A contract that a class must follow | interface Animal { void sound(); } |
Differences Between Primitive & Non-Primitive Types
Each data type in Java has a specific use case, determining how much memory it consumes and the operations you can perform on it.
Feature | Primitive Data Types | Non-Primitive Data Types |
---|---|---|
Definition | Stores simple values directly in memory. | Stores references to objects in memory. |
Examples | int, char, float, boolean |
String, Array, Class, Object |
Memory Usage | Less memory, as values are stored directly. | More memory, as it stores references. |
Methods | Cannot call methods directly. | Has built-in methods (e.g., String.length() ). |
Null Value | Cannot be null (except Boolean in wrappers). |
Can be null (e.g., String name = null; ). |
Performance | Faster, as operations work directly on values. | Slower, as objects need to be referenced. |
Usage | Best for simple values like numbers and characters. | Best for complex data structures like objects and arrays. |