今天主要说一下 java 中的 Integer 的==比较的几种结果,知识点比较基础,但是需要细心。
public class CompareInteger {
/**
* 基于 JDK自身属性,我们可以在这里给出几个前提:
* <p>
* 1.== 比较的是对内对象的地址
* 2.equals比较的是对象的值是否相等(可重写)
* 3.int,long等基础类型的值存储在栈中
* 4.Integer的常量池大小范围为-128~127(默认)
*
* @param args
*/
public static void main(String[] args) {
int stack1 = 300, stack2 = 300;
System.out.println("stack1 == stack2\t" + (stack1 == stack2));//基于前提 3,所以栈中比较数值大小为true
int i1 = 128;
Integer i2 = 128;
System.out.println(i1 == i2);//Integer会自动拆箱为int,所以为true
Integer i2copy = 128;
System.out.println(i2 ==