"=="和 equals 方法究竟有什么区别?


    ==操作符专门用来比较两个变量所对应的内存中所存储的数值是否相同,要比较两个基本
    类型的数据或两个引用变量是否相等,只能用==操作符。
    如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存,
    变量本身占用一块内存,例如:Object obj = new Object();此时,变量obj所对应的内存中存储
    的数值就是对象类型就是对象占用的那块内存首地址。对于指向对象类型的变量,如果要比较两个
    变量是否指向同一个对象,既要看这两个变量所对应的内存中的数值是否相等,这时候要用的是
    ==操作符;
    equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,
    它比较的两个对象是独立的。例如:
    String a=new String("foo");
    String b=new String("foo");
    new两条语句创建两个对象,然后用a,b两个变量方别指向其中的一个对象,这是两个不同的对象,
    他们的首地址固然是不同的,所以此时用==将返回的是flase,所以表达式a.equals(b)将返回
    true.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值