Java Primitive Data Types

Java Primitive Data Types

In the previous tutorials, we covered variables, literals, and keywords. You learned that to declare a variable, you must specify both its data type and name, and the name cannot be a reserved Java keyword. This tutorial will introduce you to the different data types available for variables in Java.

Data types define the type of data a variable can hold. In Java, data types are categorized into primitive and reference types. In this series, we’ll focus on primitive data types.

Java has eight primitive data types:

1. byte

The byte type is an 8-bit signed integer that can hold values from -128 to 127, with 0 as its default value.

public class Main {

    public static void main(String[] args) {
        byte number = 127;

        System.out.println(number);
    }
}

Output

127

2. short

The short type is a 16-bit signed integer, storing values between -32,768 and 32,767, with 0 as its default.

public class Main {

    public static void main(String[] args) {
        short number = 32767;

        System.out.println(number);
    }
}

Output

32767

3. int

The int type is a 32-bit signed integer, with a range from -2,147,483,648 to 2,147,483,647 and a default value of 0.

public class Main {

    public static void main(String[] args) {
        int number = 2147483647;

        System.out.println(number);
    }
}

Output

2147483647

4. long

The long type is a 64-bit signed integer, storing values from –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807, with a default of 0.

public class Main {

    public static void main(String[] args) {
        long number = 9223372036854775807L;

        System.out.println(number);
    }
}

Output

9223372036854775807

Notice the L at the end, which denotes that this is a long literal.

5. float

The float type is a 32-bit single-precision floating-point number for decimal values, with a default of 0.0f.

public class Main {

    public static void main(String[] args) {
        float number = 50.25f;

        System.out.println(number);
    }
}

Output

50.25

The f suffix indicates that 50.25 is a float literal; without it, Java would interpret the number as a double.

6. double

The double type is a 64-bit double-precision floating-point number for decimal values, with 0.0 as the default value.

public class Main {

    public static void main(String[] args) {
        double number = 50.25;

        System.out.println(number);
    }
}

Output

50.25

7. char

The char type is a 16-bit Unicode character, with values ranging from \u0000 to \uffff and a default of \u0000. char literals should be enclosed in single quotes. Assigning an integer to a char will display the character corresponding to that ASCII value.

public class Main {

    public static void main(String[] args) {
        char aDigit = '\u0031'; // represents the Unicode character '1'
        char aVowel = 'A'; // represents the character 'A'
        char aLetter = 72; // represents the character 'H'

        System.out.println(aDigit);
        System.out.println(aVowel);
        System.out.println(aLetter);
    }
}

Output

1
A
H

8. boolean

The boolean type holds one of two values: true or false, with false as the default. It’s commonly used in conditional statements.

public class Main {

    public static void main(String[] args) {
        boolean isTrue = true;

        System.out.println(isTrue);
    }
}

Output

true