equals和==的区别

我们比较equals和==的区别可以进行分类讨论

1.基本数据类型

  • 什么是基本数据类型:Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。
  • 只能用==进行比较
  • 比较的是它们的值(这里可以粗略认为,实际上是指向常量池地址值)

2.引用数据类型

  • 当用==进行比较时,比较的是内存地址值
  • 当用equals进行比较时,如果调用此方法的类未重写equals方法,则引用Object.equals()方法,源码如下:Object.equals()方法
    也就是此时equals等效于==。
  • 所以对比此两者的区别,需要注意equals是否被重写。例如:String类就重写了equals,源码如下:String的equals
    我们不难看到:
  • 先对内存地址值进行比较,如果不相等,则进行下一步。
  • 当比较的是另一个字符串时,比较字符串的长度是否相等,如果不相等,则进行下一步。
  • 如果相等则机继续将字符串拆分的每个char的值来比较是否相等,也就是比较的是字符串整体值是否相等。

3.感谢观看。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值