欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

两个integer比较时为什么有时候会失效?

程序员文章站 2024-01-07 11:00:58
当数值不在 -128~127范围时就不会进行缓存操作,它会选择进行new integer()的操作。这样他们被分配到堆里面。【这个可以去查看integer.valueof()的源码】。在用==或者!=比较时,会比较地址,所以两个Integer比较失效了,但可以选择用equals比较或者转成int型再 ......

 

当数值不在 -128~127范围时就不会进行缓存操作,它会选择进行new integer()的操作。这样他们被分配到堆里面。【这个可以去查看integer.valueof()的源码】。在用==或者!=比较时,会比较地址,所以两个integer比较失效了,但可以选择用equals比较或者转成int型再比较。