Table showing size and values range of all primitive types:
data type | numeric representation | range of values | default value |
---|---|---|---|
boolean | n/a | false and true | false |
byte | 8-bit signed | -27 to 27 - 1 | 0 |
-128 to +127 | |||
short | 16-bit signed | -215 to 215 - 1 | 0 |
-32,768 to +32,767 | |||
int | 32-bit signed | -231 to 231 - 1 | 0 |
-2,147,483,648 to +2,147,483,647 | |||
long | 64-bit signed | -263 to 263 - 1 | 0L |
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | |||
float | 32-bit floating point | 1.401298464e-45 to 3.402823466e+38 (positive or negative) | 0.0F |
double | 64-bit floating point | 4.94065645841246544e-324d to 1.79769313486231570e+308d (positive or negative) | 0.0D |
char | 16-bit unsigned | 0 to 216 - 1 | 0 |
0 to 65,535 |
Notes:
byte
through long
) use binary twos-complement representation, and the floating point types use standard IEE 754 binary floating point representations.int
and long
. While these methods allow a program to treat values of the respective types as unsigned, the types remain signed types.char
conventionally represents a Unicode / UTF-16 code unit.boolean
contains just one bit of information, its size in memory varies depending on the Java Virtual Machine implementation (see boolean type).