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

本文详细解析了Java中基本数据类型的包装类型在相同和不同类型的比较方式,强调了使用equals方法进行比较的正确性和必要性,并通过示例展示了如何正确地进行跨类型比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  • 相同类型比较

    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())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值