- integer是int的包装类(属于引用数据类型),而int是Java的基本数据类型
- Integer的默认值是null,int的默认值是0
- Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
1.new两个相同value的integer变量进行比较,会发现返回结果为false,这是因为new生成的两个integer指向不同的地址,而引用数据类型比较时实际是比较地址是否相同。
2.非 new 生成的 Integer 变量与 new Integer() 生成的变量比较,结果为 false,这是因为非 new 生成的 Integer 变量指向的是 java 常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同。所以输出为 false。
3.两个非 new 生成的 Integer 对象进行比较,如果两个变量的值在区间[-128,127]之间,比较结果为 true;否则,结果为 false。