Integer int auto-boxing auto-unboxing ==

 Auto-boxing 自动装箱

Auto-unboxing 自动拆箱

== 相等

 1、new出来的对象,除非遇到了拆箱的情况,肯定不相等。

因为new对象之前需要在JVM堆中提供空间,所以new出来的东西之间,至少内存地址是不一样的

2、基本数据类型之间只比较值

基本数据类型的值,是常量,位于方法区的常量池(1.7之后位于堆),基本数据类型变量都是指向这些值的。

3、一个引用的类型只要是基本数据类型,就不再管赋给引用的东西是什么了,一律只比较值

包装类对象赋值给基本数据类型时都会自动拆箱

4、不一定赋值的时候,包装类对象跟基本数据类型比较的时候也会拆箱

5、自动装箱,会产生一个包装类的对象,赋给引用。这里有两种情况

第一种情况是装箱前的值 在Java设计的缓存的范围内,那么装箱后的对象是已有的缓存对象

第二种情况是装箱前的值 在Java设计的缓存的范围外,那么装箱后的对象是new出来的对象

而Integer装箱机制的缓存范围,在源码中是有详细实现的。

原文地址:https://www.cnblogs.com/deolin/p/7228276.html