Java Primitive Data Types
Java defines eight primitive data types, each with specific characteristics and ranges:
public class PrimitiveTypes {
public static void main(String[] args) {
// Byte type
System.out.println("Type: Byte, Bits: " + Byte.SIZE);
System.out.println("Wrapper: java.lang.Byte");
System.out.println("Min Value: " + Byte.MIN_VALUE);
System.out.println("Max Value: " + Byte.MAX_VALUE);
System.out.println();
// Short type
System.out.println("Type: Short, Bits: " + Short.SIZE);
System.out.println("Wrapper: java.lang.Short");
System.out.println("Min Value: " + Short.MIN_VALUE);
System.out.println("Max Value: " + Short.MAX_VALUE);
System.out.println();
// Integer type
System.out.println("Type: Integer, Bits: " + Integer.SIZE);
System.out.println("Wrapper: java.lang.Integer");
System.out.println("Min Value: " + Integer.MIN_VALUE);
System.out.println("Max Value: " + Integer.MAX_VALUE);
System.out.println();
// Long type
System.out.println("Type: Long, Bits: " + Long.SIZE);
System.out.println("Wrapper: java.lang.Long");
System.out.println("Min Value: " + Long.MIN_VALUE);
System.out.println("Max Value: " + Long.MAX_VALUE);
System.out.println();
// Float type
System.out.println("Type: Float, Bits: " + Float.SIZE);
System.out.println("Wrapper: java.lang.Float");
System.out.println("Min Value: " + Float.MIN_VALUE);
System.out.println("Max Value: " + Float.MAX_VALUE);
System.out.println();
// Double type
System.out.println("Type: Double, Bits: " + Double.SIZE);
System.out.println("Wrapper: java.lang.Double");
System.out.println("Min Value: " + Double.MIN_VALUE);
System.out.println("Max Value: " + Double.MAX_VALUE);
System.out.println();
// Character type
System.out.println("Type: Character, Bits: " + Character.SIZE);
System.out.println("Wrapper: java.lang.Character");
System.out.println("Min Value: " + (int) Character.MIN_VALUE);
System.out.println("Max Value: " + (int) Character.MAX_VALUE);
System.out.println();
}
}
Output:
Type: Byte, Bits: 8
Wrapper: java.lang.Byte
Min Value: -128
Max Value: 127
Type: Short, Bits: 16
Wrapper: java.lang.Short
Min Value: -32768
Max Value: 32767
Type: Integer, Bits: 32
Wrapper: java.lang.Integer
Min Value: -2147483648
Max Value: 2147483647
Type: Long, Bits: 64
Wrapper: java.lang.Long
Min Value: -9223372036854775808
Max Value: 9223372036854775807
Type: Float, Bits: 32
Wrapper: java.lang.Float
Min Value: 1.4E-45
Max Value: 3.4028235E38
Type: Double, Bits: 64
Wrapper: java.lang.Double
Min Value: 4.9E-324
Max Value: 1.7976931348623157E308
Type: Character, Bits: 16
Wrapper: java.lang.Character
Min Value: 0
Max Value: 65535
Byte
- 8-bit signed integer.
- Range: -128 to 127.
- Default value: 0.
- Suitable for small numeric values to save memory space.
Short
- 16-bit signed integer.
- Range: -32,768 to 32,767.
- Default value: 0.
- Uses half the memory of an int.
Integer
- 32-bit signed integer.
- Range: -2,147,483,648 to 2,147,483,647.
- Default value: 0.
- Most commonly used for integer values.
Long
- 64-bit signed integer.
- Range: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.
- Default value: 0L.
- Used for large integer values.
Float
- Single precision floating point number (32 bits).
- Default value: 0.0f.
- Not suitable for precise calculations like monetary values.
- Example:
float value = 234.5f;
Double
- Double precision floatnig point number (64 bits).
- Default value: 0.0d.
- Default type for floating-point literals.
- Also unsuitable for exact arithmetic.
- Example:
double value = 123.4;
Boolean
- Onlly two possible values: true or false.
- Default value: false.
- Example:
boolean flag = true;
Character
- 16-bit Unicode character.
- Stores single characters.
- Example:
char symbol = 'A';
Type Conversion
- Converting from larger to smaller types may result in data loss.
- Converting from smaller to larger types is generally safe.
- When converting floating-point numbers to integers, decimal parts are trnucated.
Reference Types
- Reference types hold references to objects in memory.
- Default value is null.
- Includes strings, arrays, and custom classes.