java封装类拆箱
IntegerCache有静态成员变量cache,为一个拥有256个元素的数组。在IntegerCache中也对cache进行了初始化,即第i个元素是值为i-128的Integer
对象。而-128至127是最常用的Integer对象,这样的做法也在很大程度上提高了性能。也正因为如此,“Integeri1=100;Integer i2=100;”,i1与
i2得到是相同的对象。
当封装类与基础类型进行==运行时,封装类会进行拆箱,拆箱结果与基础类型对比值;而两个封装类进行==运行时,与其它的对象进行==运行一样,
对比两个对象的地址,也即判断是否两个引用是否指向同一个对象。在+运算时,会将封装类进行拆箱
如果没有重写 equal 方法 ,它与== 一样,都比较地址。但integer 重写了该方法 先判断类型,如果相同则比较值 ,否则~