Java基本数据类型的包装类型的比较

基本数据类型的包装类型比较分为两种类型:

  • 相同类型比较

    Number类型比较时,只要有一个调用了拆箱,就可以用“==”比较,无论是调用intValue还是longValue。当然对于包装类的比较,建议使用equals比较。

    Integer id1 = 123456789;
    Integer id2= 123456789;
    // false
    System.out.println(id1 == id2);
    // true
    System.out.println(id1.longValue() == id2);
    // true
    System.out.println(id1.equals(id2));
    
  • 不同类型比较

    Number类型比较时,只要有一个调用了拆箱,就可以用“==”比较,无论是调用intValue还是longValue。如果使用equals比较,必须要转成相同类型才能正确比较。

    Long idL = 123456789L;
    Integer idI = 123456789;
    // true,注意:Integer转成了Long类型
    System.out.println(idL.equals(idI.longValue()));
    // false,注意:两者类型相同时才能正确比较
    System.out.println(idI.equals(idL.longValue()));
    // true
    System.out.println(idL == idI.longValue());
    System.out.println(idL.intValue() == idI);
    System.out.println(idI.equals(idL.intValue()));
    

总结:

  1. 相同类型的包装类型比较时,建议使用equals比较。
  2. 不同类型的包装类型比较时,建议使用equals比较,但是要转成相同的类型!例如:Integer.equals(Long.intValue())Long.equals(Integer.longValue())
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值