Java 中有两大数据类型,一是基本类型,二是引用类型。基本类型包括数值型,布尔型,字符型。下图展示了基本数据类型所包含的内容:
Java的基本数据类型.jpg

一、基本类型

1. 整数类型
类型 位宽 取值范围 默认值
byte 8 -2^7 ~ 2^7 - 1 0
short 16 -2^15 ~ 2^15 - 1 0
int 32 -2^31 ~ 2^31 - 1 0
long 64 -2^63 ~ 2^63 - 1 0L

【注】整数类型的数在计算机中均以二进制补码的形式保存。

2. 浮点数类型
类型 位数(符合 IEEE 754标准) 默认值
float 32 0.0f
double 64 0.0d

【注】浮点数不能用来表示精确的值,如货币等。

3. 字符类型

char 类型是一个单一的 16 位 Unicode 字符,因此 char 类型可以储存任何字符。
取值范围: \u0000  ~ \uffff (0 ~ 65,535)

4. 布尔类型

boolean 数据类型表示一位的信息,只有两个取值: true 和 false ,默认值是 false 。

二、引用类型

在 Java 中,引用类型的变量非常类似于 C/C++ 的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 EmployeeCompany 等。变量一旦声明后,类型就不能被改变了。
在 Java 中,对象、数组都是引用数据类型,所有引用类型的默认值都是 null,一个引用变量可以用来引用任何与之兼容的类型。

三、类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

1
2
低  ----------------------------------------->  高
byte,short,char —> int —> long —> float —> double

由低向高转可以自动进行,但由高向低转必须要进行强制类型转换,方法为:(type)value type,如:

1
2
3
4
5
6
int i = 123;
int j = 128;
byte b = (byte)i;
byte d = (byte)j;
System.out.println(b);
System.out.println(d);

输出结果为:

1
2
123
-128

由此可见,强制类型转换可能会导致溢出或损失精度,因此要谨慎使用。