Definition : Variables are nothing but reserved memory locations to store values. This means that when you create a variable you reserve some space in memory.
There are two data types available in Java:
- Primitive Data Types
- Reference/Object Data Types
Primitive Data Types:
There are eight primitive data types supported by Java. Primitive data types are predefined by the language and named by a key word.- byte
- short
- int
- long
- float
- double
- boolean
- char
byte:
- Byte data type is an 8-bit signed two's complement integer.
- Minimum value is -128 (-27)
- Maximum value is 127 (inclusive)(27 -1)
- Default value is 0
- Byte data type is used to save space in large arrays, mainly in place of integers, since a byte is four times smaller than an int.
short:
- Short data type is a 16-bit signed two's complement integer.
- Minimum value is -32,768 (-215)
- Maximum value is 32,767 (inclusive) (215 -1)
- Short data type can also be used to save memory as byte data type. A short is 2 times smaller than an int
- Default value is 0.
int:
- Int data type is a 32-bit signed two's complement integer.
- Minimum value is - 2,147,483,648.(-231)
- Maximum value is 2,147,483,647(inclusive).(231 -1)
- Int is generally used as the default data type for integral values unless there is a concern about memory.
- The default value is 0.
long:
- Long data type is a 64-bit signed two's complement integer.
- Minimum value is -9,223,372,036,854,775,808.(-263)
- Maximum value is 9,223,372,036,854,775,807 (inclusive). (263 -1)
- This type is used when a wider range than int is needed.
- Default value is 0L.
float:
- Float data type is a single-precision 32-bit IEEE 754 floating point.
- Float is mainly used to save memory in large arrays of floating point numbers.
- Default value is 0.0f.
- Float data type is never used for precise values such as currency.
double:
- double data type is a double-precision 64-bit IEEE 754 floating point.
- This data type is generally used as the default data type for decimal values, generally the default choice.
- Double data type should never be used for precise values such as currency.
- Default value is 0.0d.
boolean:
- boolean data type represents one bit of information.
- There are only two possible values: true and false.
- This data type is used for simple flags that track true/false conditions.
- Default value is false.
char:
- char data type is a single 16-bit Unicode character.
- Minimum value is '\u0000' (or 0).
- Maximum value is '\uffff' (or 65,535 inclusive).
- Char data type is used to store any character.
Reference Data Types:
- Reference variables are created using defined constructors of the classes. They are used to access objects. These variables are declared to be of a specific type that cannot be changed. For example, Employee, Puppy etc.
- Class objects, and various type of array variables come under reference data type.
- Default value of any reference variable is null.
- A reference variable can be used to refer to any object of the declared type or any compatible type.
Default Values of Data Types
Data Type | byte | short | int | long | float | double | char | String | boolean |
---|---|---|---|---|---|---|---|---|---|
Default Value | 0 | 0 | 0 | 0L | 0.0f | 0.0d | '\u0000' | null | false |
Range of Numeric Primitives in Data Types
Data Type | Bits | Bytes | Minimum Range | Maximum Range |
---|---|---|---|---|
byte | 8 | 1 | -27 | -27 - 1 |
short | 16 | 2 | -215 | -215 - 1 |
int | 32 | 4 | -231 | -231 - 1 |
long | 64 | 8 | -263 | -263 - 1 |
float | 32 | 4 | -3.4e38 to -1.4e-45 | 1.4e-45 to 3.4e38 |
double | 64 | 8 | -1.8e308 to -4.9e-324 | 4.9e-324 to 1.8e308 |
char | 16 | 2 | 0 (\u0000) | 65535 (\uffff) |
boolean | 1 | 0.125 | false | true |