关于相等的判断总结

  1. ==判断的是引用,而引用在java上指内存地址,是new出来的。比如

int b=new int(1);//表示向内存申请一个地址1存储值1,用b来表示这个地址。

int a=new int(2);//表示向内存申请一个地址存2储值2,用a来表示这个地址。

int c=new int(2);//表示向内存申请一个地址3存储值2,用c来表示这个地址。

System.out.println(a==c);//结果为false,判断的是引用,也就是地址

关于内存怎么分配地址这件事由系统决定,可以看看heap的源码。里面就有new的定义。

int d=2;//常量池中找int池,在int池中找到2,然后用d表示2在常量池中的位置。常量池地址是由系统分配的,但是肯定和我们new的不一样。

  1. Objects.equals(a,b)

先判断a和b的类型,类型不同直接返回false,类型相同再判断值。

short e=1;

Objects.equals(e,a);//直接false

Objects.equals(e,(short)a);//返回true

3关于a.equals(b):

这个是object对象定义的,所以可以重写的。根据需求来,比如空指针,引用,内容(值)比较。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值