java equals()方法的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:24:58
看书上说 p1 == p2 比较的是两个引用是否指向同一个对象,而p1.equals(p2)却是用来比较p1和p2的内容。

但今天老师却说equals()和==是一个意思,必须重写Object类里的equals()方法,才能实现比较内容的功能。

到底书上说的对,还是老师说的对?
我终于懂了。原来String类里重写了这个方法。所以equals()比较内容,只适用于字符串。

equals 是比较内容是否相同
而== 是指 内存地址相同

比如:
String a="1";
String b="1";
System.out.println(a.equals(b));//这里会输出true,因为a b 值相同
System.out.println(a==b);//这里会输出false,虽然值相同 但a,b在内存存放的地址不相同 所以会输出false

都对!他们说的意思不一样,你还不太了解!!

对!
equals 是比较内容是否相同
== 是指 内存地址相同

'== ' 判断的是不是同一个对象

‘equals’是判断字符串的值是不是相同的

也就是说书上对了

简单说,==是比较内存地址,equals是比较内容的,对于自己创建的对象.需要复写equals方法.就按你复写的做,否则默认调用object的equals方法