我是靠谱客的博主 能干眼睛,最近开发中收集的这篇文章主要介绍Integer与int值的比较,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

==一般用于比较内存地址,equals()用于比较Object的值,注意int用equals()是会报错的。
Integer i=1
Integer k=1
i.equals(k)=true
i==k=true
i.intValue()==k.intValue()=true


Integer l=129
Integer p=129
l.equals(p)=true
l==p=false
l.intValue()==p.intValue()=true

综上所属Integer在栈中的值-128到127是成立的


int o=197
int y=197
o==y=true


Integer A=197
Integer B=197
A==B=false

同样值是197,但是Integer是重新new了对象的,所以A==B=false。

而int则是将两个相同的值指向了一个地址o==y=true。


o==B=true

这是我们很多人代码没有出错的原因之一,比如从数据库查出的id用==判断而没出错。

转载于:https://www.cnblogs.com/zeussbook/p/9296744.html

最后

以上就是能干眼睛为你收集整理的Integer与int值的比较的全部内容,希望文章能够帮你解决Integer与int值的比较所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部