In Java, each variable has a specific data type, where a data type tells us the size, range and the type of a value that can be stored in a variable.
In Java, there are about eightprimitive data types, such as - byte, short, int, long, char, float, double, boolean.
Primitive data types are categorized into 4 parts
integer data types, such as byte, short, int, long.
floating-point data types, such as float, double.
character data type, such as char.
boolean data type, such as boolean.
Note: For many of us who like the reasoning behind equations, we will use a formula to calculate a minimum range
and a maximum range of values, that can be stored for the data types like byte, char, int and long.
Minimum Range- It is the minimum value that can be stored in a data type.
Maximum Range- It is the maximum value that can be stored in a data type.
The minimum range is calculated by -2^{(bits-1)} and for the maximum range, it is 2^{(bits-1)}-1, while bits = size of a data type.
For example - The size of a byte data type is 8 bits.
And, as per formula above, the minimum range of value that can be stored in a variable declared as the byte data type is -2^{7}(-128), while the maximum range of value is 2^{7}-1(127). Hence, the range of values for the byte data type is -128 to 127.
Understanding primitive data types
Let's see each primitive data type in Java, one-by-one.
byte
A variable of byte data type is of size 8 bits, which is equal to 1 byte.
As per the formulas discussed above,
a minimum value a byte variable can store is -2^{7} or -128 and a maximum value in a byte variable is 2^{7}-1 or +127.
Hence, it's range is -128 to 127.
short
Size of a short variable is 16 bits or 2 bytes.
A minimum value that can be stored in a short is -2^{15} or -32768 and a maximum is 2^{15}-1 or +32767.
So, it's range is -32768 to 0 to 32767.
int
Size of an int variable is 32 bits or 4 bytes.
Minimum value that can be stored in an int is -2^{31} or -2, 147, 483, 648 while, Maximum is 2^{31}-1 or 2, 147, 483, 647.
So, it's range is -2, 147, 483, 648 to +2, 147, 483, 647.
long
Size of a Java long variable is 64 bits or 8 bytes.
The minimum range of a value that can be stored in a long is -2^{63} while, the maximum is 2^{63}-1 Note: Because of a wider range than int, the long data type is used to store a larger number.
Advertisement
float
In float data types, we can hold a number with its fractional part as well. So, we use this data type when a very precise calculation is required.
Size of a float variable is 32 bits= 4 bytes.
You don't need to remember the minimum and maximum value floating data types but for those who still wish to know, its minimum range is 3.4e-038 and a maximum limit of 3.4e+038.
double
Size of a double variable is 64 bits= 8 bytes.
Double data type variable may store a data with a minimum value of 1.7 e-038 until a maximum value of 1.7e+038
Note: In double data type, we can hold numbers with double precision values, as compared to float.
char
Java's char type variable takes 16 bits=2 bytes in the memory.
In Java, we have Unicode characters. Unicode characters are represented by unsigned(only positive) 16-bit numbers. Hence, the minimum range is 0 and the maximum range is 2^{16}-1.
Ranging from 0 to 65535 values.
Why Unicode characters in Java?
Because Unicode characters are 16 bits, a wider range than characters in C or C++(where they were just 8 bits or 1 byte). Hence in Java, a rich international set of characters are easily represented in Unicode.
boolean
For boolean types, there is no range of values. Unlike programming languages like C/C++, a boolean primitive data type in Java cannot take a 0 or 1 value.
A boolean in Java can be eithertrue or false.