Java 中有两大数据类型,一是基本类型,二是引用类型。基本类型包括数值型,布尔型,字符型。下图展示了基本数据类型所包含的内容:
一、基本类型
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++ 的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee
、 Company
等。变量一旦声明后,类型就不能被改变了。
在 Java 中,对象、数组都是引用数据类型,所有引用类型的默认值都是 null
,一个引用变量可以用来引用任何与之兼容的类型。
三、类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
1 | 低 -----------------------------------------> 高 |
由低向高转可以自动进行,但由高向低转必须要进行强制类型转换,方法为:(type)value type
,如:
1 | int i = 123; |
输出结果为:
1 | 123 |
由此可见,强制类型转换可能会导致溢出或损失精度,因此要谨慎使用。