一. 基本类和包装类
基本类 | 包装类 | 长度 |
---|---|---|
byte | Byte | 8 |
char | Character | 16 |
short | Short | 16 |
int | Integer | 32 |
float | Float | 32 |
long | Long | 64 |
double | Double | 64 |
包装类不可被继承。
1.包装类应用:
-
集合类泛型只能使用包装类
-
成员变量不允许有默认值时使用包装类
private int state; //state 默认为0
private Integer state; //state 默认为null
- 希望方法可以传空值时使用包装类
private static void empt(Integer val){
// val 允许传空值 null ;
}
2.自动拆箱、装箱
Integer i = 8; // 调用 Integer. valueOf(8)
int im = i; // 自动拆箱 调用 i.intValue()
3.Integer缓存陷阱
https://mp.weixin.qq.com/s/PnVkrMzYeOiepPKjl4MKVA
new Integer( ) 每次都会新建一个对象;
Integer.valueOf( ) 会使用缓存区中的对象,多次调用会取得同一个对象的引用。
4.类型转换
自动转换: char–>byte–>short–>int–>long–>float–>double 强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。
修改一下:
实线自动转换不会丢失精度,虚线有丢失精度的危险。