Integer类型使用时遇到的坑

今天再做一个功能比较两个Integer类型值的时候,用的是双等于号比较。结果是一些结果对。有一个结果一直不对。急死我了,最后总算是找到了原因。

1.问题:

请看下面两个结果:

Integer类型使用时遇到的坑

Integer类型使用时遇到的坑

2. 原因:

  原来,如果Integer类型的值在-128~127之间的话,那么ab变量指向的还是同一个地址

  超过这个范围,ab就指向各自的内存地址。所以会出现这个情况。

 

3.解决:

Integer类型使用时遇到的坑

使用Integer类的equals方法比较的就是两个变量的值。

Integer类型使用时遇到的坑

上一篇:java.util.Map按照key值合并的value的Collection 集合中。


下一篇:jdbc和odbc