equals()和==的区别

equals()和==的区别
总结:
 
  1)对于==,比较的是 值 是否相等
            如果作用于  基本数据类型  的变量,则直接比较其  存储的 “值”  是否相等;
    如果作用于  引用类型  的变量,则比较的是  所指向的对象的地址
  2)对于equals方法,
  注意:equals方法不能作用于  基本数据类型的变量,
     equals继承Object类,比较的是是否是  同一个对象
    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
    诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
注:不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同
好记:
== 的作用:
   基本类型:比较  值  是否相同
   引用类型:比较  地址值 ( 堆内存地址) 是否相同
equals 的作用:
  引用类型:默认情况下, 比较的是  地址值。
  equals方法 不能 作用于  基本数据类型的变量
对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是内存中的存放位置的地址值,跟双等号(==)的结果相同;如果被复写,按照复写的要求来。
 

一、java当中的数据类型和“==”的含义:

  • 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。
  • 引用数据类型(即复合数据类型(类) ):当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)。所以除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为每new一次,都会重新开辟堆内存空间。

  对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。

 

二、 String类的equals()方法:

解释比较  字符串  中“==”和equals()的区别?

  •  ==:比较的是两个字符串  内存地址(堆内存)的数值是否相等,属于数值比较;
  •  equals():比较的是两个字符串的  内容,属于内容比较。

好记总结:

==比较的是  两个对象的地址

equals ()比较的是  两个对象的内容

以后进行字符串相等判断的时候都使用equals()。

 

参考博客:

http://www.cnblogs.com/smyhvae/p/3929585.html

 http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html

http://www.cnblogs.com/zhxhdean/archive/2011/03/26/1996468.html

http://www.cnblogs.com/zhxhdean/archive/2011/03/26/1996468.html

 

转载于:https://www.cnblogs.com/2549372994jing/p/10531561.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值