java对象,用‘==’和‘.equals()’区别

一、上代码

例子

    public static void main(String[] args) {
        Short a = new Short("10000");
        Short b = new Short("10000");
        out.println("new Short        : " + (a == b));
        out.println("new Short        : " + a.equals(b));

        Short c = 10000;
        Short d = 10000;
        out.println("Short            : " + (c == d));
        out.println("Short            : " + c.equals(d));

        Short e = Short.valueOf("10000");
        Short f = Short.valueOf("10000");
        out.println("Short.valueOf    : " + (e == f));
        out.println("Short.valueOf    : " + e.equals(f));

        short g = 10000;
        short h = 10000;
        out.println("short            : " + (g == h));
      }

结果

 二、结论

1.==:比较的是内存地址;

2..equals():jvm中的值;

3.使用 == 比较对象会得到不靠谱的结果,当使用Short缓存中的数字的时候结果会是true,否则就像比较10000一样返回false;

4.Short拆包后会放入缓存,即short类型,此时只能使用 == 号去比较,且是相等的;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值