How the equals() method works(Equals()方法的工作原理)
本文介绍了Equals()方法的工作原理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在深入研究Java的基础知识。我从this article推断,Java‘equals’方法意味着,如果两个对象相等,则它们必须具有相同的hashCode()。
这是我的示例。
public class Equals {
/**
* @param args
*/
public static void main(String[] args) {
String a = new String("a");
String b = new String("a");
System.out.println("a.hashCode() "+a.hashCode());
System.out.println("b.hashCode() "+b.hashCode());
System.out.println(a == b);
System.out.println(a.equals(b));
}
}
输出:
A.hashCode()97B.hashCode()97
FALSE
真
实际的Java语言‘equals’方法:
public boolean equals(Object obj) {
return (this == obj);
}
在上面的示例中,a.equals(B)返回了TRUE,这意味着满足条件‘a==b’。但为什么在该示例中‘a==b’返回FALSE?
hashCode和Address不是一样的吗?另外,当我们说‘a==b’或其他词时,会比较‘hashCode’吗?
推荐答案
String
类已重写equals()
方法。请按照String equals()文档进行操作。
a.equals(B)已返回True,表示条件a==b满足
这是Object
类中equals()
的默认实现,String
类已覆盖默认实现。当且仅当参数不为空并且是表示与此对象相同的字符序列的字符串对象时,它才返回True。
hashCode和Address不是一个吗?
不一定。有关hashCode()的进一步阅读。
这篇关于Equals()方法的工作原理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:Equals()方法的工作原理


基础教程推荐
猜你喜欢
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- Struts2 URL 无法访问 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01