两个Integer比较不能使用==吗?

我知道包装类之间比较要用equals,但是我试了==,就会报错,查看错误idea提醒我要使用equals
是Integer不能使用==吗?图片说明图片说明

求回答

可以使用,这个报错是警告,并不影响运行。如果Integer中存储的为-128~127之间的数字,使用==是可以正常判断的,并且当两个数值相等时显示为true;但是当integer内存储的数字超出这个范围会在堆上产生并不会复用已有对象,这个时候就算两个integer内的数值一样也会判断为fasle。

静态变量池里面只存放-128~127之间的数,里面的数可以自动装箱拆箱,1000的话就是两个对象了。
这个只是警告提示你优化语句,比如你for循环不写大括号也会警告你,但是还是可以正常运行地。

不可以,int才可以==,Integer只能用equals