八种基本数据类型:int、short、long、byte、float、double、boolean、char;
对应的封装类:Integer、Short、Long、Byte、Float、Double、Boolean、Character。
数据类型 | 包装类 | 字节长度 | 大小位 | 取值范围 | 默认值 | 说明 |
int | Integer | 4 | 32 | -2^31 ~ 2^31-1 | 0 | 整形 |
short | Short | 2 | 16 | -2^15 ~ 2^15-1 | 0 | 短整型 |
long | Long | 8 | 64 | -2^63 ~ 2^63-1 | 0l 或 0L | 长整型 |
byte | Byte | 1 | 8 | -2^7 ~ 2^7-1 | 0 | 字符型,数据存储在内存中的最原始形态 |
float | Float | 4 | 32 | -2^128 ~ 2^128 | 0.0f 或 0.0F | 浮点型,用于存储单精度数字 |
double | Double | 8 | 64 | -2^1024 ~ 2^1024 | 0.0 | 双精度型,用于存储双精度数字,默认声明的小数 |
boolean | Boolean | 1 | 1 | true 或 false | false | 布尔型,用于存储真值或假值 |
char | Character | 2 | 16 | '\u0000' ~ '\uFFFF' | '\u0000' | 字符型,用于存储字符,以 Unicode 编码方式 |
注意点:
- 包装类的默认值为 null,包装类可以区分出未赋值和值为 0 的区别,而数据类型无法表达出未赋值的情况。
- 基础数据类型在传递参数时都是按值传递,封装类都是按引用传递。
- JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。
- Java默认声明的小数类型是 double 类型的,所以在声明 float 类型的小数时需要进行类型转换。(float f = 1.0f 或者 float f = (float)1.0
- 基本数据类型之间可以进行相互转换,有两种转换方式,分别是自动转换和强制转换,自动转换是从低精度向高精度转换,优先级顺序为:byte < short < char < int < long < float < double。强制转换则是从高精度向低精度进行转换,在转换过程中可能会损失精度。(自动转换:int a = 10; double b = a; b的值为10.0)