# Data Types

#### - Primitives

An integer type means a value that is a numeric integer, a number without the decimal part. This statement applies to the first 4 that we see in the table. The fifth, or char, is different from the others because, although belongs to the same category, in reality it does not represent a number, but represents a character, belonging to the same category depends on the fact that it is possible to assign an integer to a char as a value, provided that this number is not negative and not higher than 65535.

NOTE: In Java 9 the character set used by default is Unicode (UTF-16 encoding).

Numeric Data Types
Type  Default value  Bit  Example
byte  0 8 byte a = 100
short  0 16 short s = 10000
int  0 32 int a = 100000
long  0L 64 long a = 100000L
char  '\u0000' 16 char letterB = 'B'

With a floating-point type we mean a numeric value that is not integer, since it is divided into two parts: an integer part (before the point) and a decimal part (after the point).

Floating-Point Types
Type Default value  Bit  Example
float  0.0f 32 float f1 = 234.5f
double  0.0d 64 double d1 = 123.4

A Boolean type can only take two values: true or false.

Boolean type
Type Default value  Bit  Example
boolean  false 32 boolean b1 = true

#### - References

With reference type we mean those variables that are represented by a reference pointing to an area of ​​memory in which an object has been allocated. If we assign another variable of the same type to a reference variable as value, they will point to the same memory address, so a change to the first will affect the second variable and vice versa, now let's see a simple example:

`public class Hill {    public String altitude;    public Hill(String altitude) {        this.altitude = altitude;    }}`

Now we see that if we change altitude of hillX, it will also change altitude of hillY:

`    Hill hillX = new Hill("500 meters");    Hill hillY = hillX;    hillX.altitude = "600 meters";    System.out.println(hillX.altitude);    System.out.println(hillY.altitude);`

Output: 600 meters
600 meters

Note: if we had modified hillY's altitude, the result it would have been analogous.