敲黑板划重点

-128 到 127的两个 Integer 对象,怎么比较都一样,超出此范围的的只有 equals() 时才相等。
Java自动装箱是对于从 -128 到 127 之间的信息值,它们在被装箱为对象数据后会在内存中被重用,也就是对于相同的值,返回的是同一个对象(这一点,类似 String 类)。
直接与数值比较时(即 a==300000 这样),大概是拆箱比较了,就跟 int 的比较一样了,所以该相等还是相等的。

所以, 就会出现如下情况

 Integer a = 128;  
 Integer b = 128;  
 System.out.println(a==b);   //false
 System.out.println(a.equals(b));  //true

比较Integer大小可以使用,Integer.intValue进行拆箱,比较的就是int值。

标签: JAVA Integer compare


阿里云优惠主机

添加新评论

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。