为了账号安全,请及时绑定邮箱和手机立即绑定

equals递归调用问题

为什么equals方法重写中要在调用equals而不用==

正在回答

2 回答

Object类中的方法,适合所有子类。

1.toString()方法

在Object类里面定义了toString()方法的时候返回的对象的哈希code码(对象地址字符串)

可以通过重写toString()方法表示出对象的属性(source菜单栏下的Generate toString())

2.equals()方法(source菜单栏下的Generate hashCode()and equals())

比较的是对象的引用是否指向同一块内存地址

重写equals()方法以后可以比较两个不同内存地址的对象是否相等。

==:

* 如果操作的是基本数据类型的数据,比较的数值是否相等

* 如果操作的是引用数据类型的数据,比较的地址值是否相等

equals:

* 只能够比较引用数据类型的数据, 默认比较的是地址值是否相等

* 默认的比较方式通常来说是没有意义的

* 我们需要重写此方法,让它来比较两个对象中的内容是否一致 


String对象继承自Object,并且对equals()方法进行了重写

String s1 = new String("Hello");

String s2 = new String("Hello");


System.out.println(s1 == s2);

System.out.println(s1.equals(s2));


以上代码段的打印结果是:


false

true


2 回复 有任何疑惑可以回复我~
#1

yuanyinguo

大神 说的对
2015-06-03 回复 有任何疑惑可以回复我~
#2

我喜欢Love 提问者

非常感谢!!!
2015-09-20 回复 有任何疑惑可以回复我~

可以再认真看一下字符串讲解的章节,对于字符串"=="和"equals"的作用不同

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

equals递归调用问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信