Java中Integer类型的比较

Integer a=300;
Integer b=300;
System.out.println(a==b);//false
System.out.println(a.equals(b));//true

Integer把-128到127的整数都提前实例化了, 所以你不管创建多少个这个范围内的Integer都是同一个对象,他们的id相同。因为“==”比较的是地址,在上述代码中a、b地址不同。

所以对于-128到127的整数,可以直接用“==”来判断是否相等,对于范围之外的数,使用equals来比较:

public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }

equals方法中获取Integer的基本类型值(intValue)来用 == 比较了。

所以,我们也可以通过Integer.intValue()获取int值来直接比较。
一个int类型可以和Integer直接“==”比较

Integer i = 200;
int j = 200;
System.out.println(i == j);//返回true

综上:
1.如果Integer类型的两个数相等,如果范围在-128~127(默认),可以用“==”比较大小。

2.两个基本类型int进行相等比较,直接用==,因为int类型无equals()函数。

3.一个基本类型int和一个包装类型Integer比较,用==也可,比较时候,Integer类型做了拆箱操作。

4.Integer类型比较大小,要么调用Integer.intValue()转为基本类型用“==”比较,要么直接用equals比较。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值