把基本数据类型包装成对象,使其功能更加强大,然后用面向对象的思想来使用这些类型

基本数据类型的默认值:例如 int 是 0,double 是 0.0,使用包装类型后,默认值是 null

自动装箱

可以直接把一个基本数据类型的赋值给包装类对象

Integer i = 10;
// 这是一个语法糖, 编译后 Integer i = Integer.valueOf(10);

自动拆箱

可以把一个包装类对象直接赋值给基本数据类型的变量

Integer i = 10;

int i1 = i;
// // 这是一个语法糖, 编译后 int i1 = i.intValue(10);

包装类的缓存

Integer i1 = Integer.valueOf(100);
Integer i2 = Integer.valueOf(100);
Integer i3 = Integer.valueOf(200);
Integer i4 = Integer.valueOf(200);

System.out.println(i1 == i2); // true
System.out.println(i3 == i4); // false
// 包装类的缓存设计, 具体可以看valueOf的源码, 很好理解
// 缓存范围, -128~127, 超出这个范围就不使用缓存, 直接 new 对象了