装箱:将基本类型用他们对应的引用类包装起来;
拆箱:将引用类型转换为基本数据类型;
例子如下:
1.new了,因此比较的是地址不相等;
2.装箱的时候用的是常量池的地址
3.装箱的时候用的是常量池的地址
4.成为200后就不相等了。在给Integer赋值时,实际上是自动装箱的过程,也就是调用了Integer.valueOf(int)方法,当这个值大于等于-128并且小于等于127时使用了常量池,所以3的两个地址是相等的,但是4的两个超过了127,故不使用常量池。
5.Integer的equals方法是被重写,比较值大小,而不是地址
6.Integer和int比较,Integer会拆箱比较值。