Integer填坑

在-128~127的Integer值并且以Integer x = value;的方式赋值的Integer值在进行==和equals比较时,都会返回true,因为Java里面对处在在-128~127之间的Integer值,用的是原生数据类型int,会在内存里供重用,也就是说这之间的Integer值进行==比较时只是进行int原生数据类型的数值比较,而超出-128~127的范围,进行==比较时是进行地址及数值比较。当Integer类型的值超出这个范围,会重新new一个对象,这里的不等的原因是地址不等。。。。

 

==和equals的区别,==是进行地址及值比较,无法对==操作符进行重载,而对于equals方法,Integer里面的equals方法重写了Object的equals方法,查看Integer源码可以看出equals方法进行的是数值比较。

 

相关文章:

  • 2021-11-03
  • 2021-06-03
  • 2021-05-30
  • 2022-03-04
  • 2022-01-15
  • 2021-06-27
  • 2021-08-08
猜你喜欢
  • 2019-06-16
  • 2021-12-30
  • 2021-07-29
  • 2021-04-10
  • 2021-10-11
  • 2021-06-07
  • 2021-05-28
相关资源
相似解决方案