Integer类型使用时遇到的坑

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

1.问题:

请看下面两个结果:

2. 原因:

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

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

3.解决:

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

posted @ 2021-08-13 19:12  TIME_小白  阅读(189)  评论(0)    收藏  举报