基本类型的对象表示, 包装器.
- 包装器是不可变的, 不能改变其中的值
- 包装器类是 final 的
自动装箱:
var list = new ArrayList<Integer>();
list.add(3); // 自动变成 list.add(Integer.valueOf(3));
自动拆箱:
int n = list.get(i);
// 自动变成
int n = list.get(i).intValue();
适用于算数表达式:
Integer n = 3;
n++;
比较两个包装器对象使用 equals 方法.
如果在一个条件表达式中混合使用 Integer 和 Double, Integer 值会拆箱并转为 double, 之后再装箱为 Double:
Integer n = 1;
Double x = 2.0;
System.out.println(true ? n : x); // prints 1.0
装箱, 拆箱由编译器拆完成.