当数值范围是[-128,127],比如a=12,b=12,用==去比较得出的是true;
当数值范围超出[-128,127],比如a=12345,b=12345,用==得出的结果是false。
因为超出范围时,Integer会去new一个对象,比较的是两个对象的地址。
建议用equals()去进行比较
int a1 = 500;
int b1 = 500;
System.out.println(a1 == b1); //true
如果是基本数据类型,则 == 比较的是值;500放在栈中
Integer a = 500;
Integer b = 500;
System.out.println(a == b); //false
如果是对象类型,则 == 比较的是对象的地址;>=127放在堆中
浙公网安备 33010602011771号