java中的equal 和==的对比

如果说是基本的数据类型的  就是用==来比较其值,如果是引用类型,用==比较的是他们在内存中存放的地址,因此除非是同一个new出来的对象  否则比较的都是 他们的引用对象的值 

这里没整理完   看一下正则表达式

“equals”和“==”怎么区分使用,什么时候使用equals()?什么时候使用 “==” ?

“==”使用场景

如果两个变量是基本数据类型,可以直接使用“==”运算符来比较数值是否相等。
如果是引用数据类型(对象),这里涉及两块内存,对象存储在对内存中,变量占用另外一块内存。如果要比较两个对象是否指向同一个对象,看这两个对象是否指向同一块存储空间
例如: String s=new String();

`new String()占用一块内存    变量s占用一块内存`

此时,变量s所对应内存中存储的数值就是对象占用的那块地址的首地址

基本数据类型:byte、int、long、short、float、double、char、boolean(比较值)
引用数据类型:类(包括对象)、接口、数组(比较的是他们在内存中的存放地址)

equals使用场景

equals是Object提供的方法,每个类都继承至Object,所以都具有equals方法。
没有覆盖的equals底层也是使用“==”运算符比较两个对象

boolean equals(Object object){
       return this==object;
 }

“==”和equals比较

相比较“==”运算符,equals方法可以被覆盖,可以通过覆盖,让他比较数据内容而不是引用比较堆中内容是否相等

new 两个对象:

String s1=new Strig("www.ljcn.xyz");
String s2=new Strig("www.ljcn.xyz");

这是俩个不同的对象,首地址不同
s1=s2;返回false
s1.equals(s2);返回true

最后

如果编写的类希望比较该类创建的两个实例对象的内容是否相同,需覆盖equals方法!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值