equals()方法在object类中定义:
public boolean equals(Object obj) { return (this == obj); }”==“实情绪管理际上比较的是内存地址,即属于“逻辑判断”。所以一般对象比较的是内存地址。
但在实际开发中常常比较的是两个对象的状态是否是一致的,若一致则判断两个对象是相等的,即对象引用相等。
例如两个员工对象的姓名和id都一样则可以认为这两个对象是一个对象。比如:
public class Equals { pub多媒体技术与应用lic static void main(String[] args) { Empolyee wang1 = new Empolyee("wang", 1); Empolyee wang2 = new Empolyee("wang", 1); System.out.println(wang1.equals(wang2));东北人家 标致508论坛 }}class Empolyee{ private String name; private int id;情侣运动装 public Empolyee(String name, int id) { this.name = name; this.id = id; 窗外林青霞 }}结果输出为flase,因为new了两个对象在堆中,只是属实值一样,可实际上我们觉得这两个员工都是同一个人。所以我们一般在自定义类中要重写equals方法。
但是在比较字符串时要注意:
public class Equals { public 韩国和朝鲜的关系static void main(String[] args) { String A="a"; 罗兰巴尔特 Stri清穿文ng B="a"; System.out.println(安利制度A == B); System.out.println(A.equals(B)); String a = new Stringerp系统是什么("A"); 俄罗斯人质事件 String b = new String("A"); System.out.println("--------------"); System.out.println(a == b); boolean equals = a.equals(b); System.out.println(equals); System.out.println("--------------"); String C = new String("a"); System.out.println(C == A); System.out.println(C.equals(A)); }}输出结果:
truetrue--------------falsetrue--------------falsetrue字符串有两中存储方式:
1.直接赋值的字符串字面量存储在字符串常量池中,若在赋值时在常量池中查找到已存在的字符串常量,则引用给当前字符串引用变量,即字面量共享。第一种测试两个对象引用指向同一个情趣吧地址空间,故为true。
2.若用new的方式生存字符串对象,则生成的是两个对象,所以在使用equa山贼王ls()判断时为false,但运行代码为true,则是因为在String类中对equals()方法已经重写过了,只会比较字符串字面上是否相等,但实际上并不是相同地址,这是Java JDK中已经设计好了的,所以一般自定义类要根据自己类需要重写equals()方法。
其次早死早投胎之地狱摇滚篇,object 规范规定,如果要重写 equals 方法,也要重写 hashcode 方法,因为当 equals 比较的结果是 true 时,则两个对象的 hashCode 方法必须返回相同的整数(还有另一句:当 equals 比较的结果是橡胶沥青 false 时,则两个对象的 hashCode 方法返回值通常会不同,但有可能广东理工职业学院中山校区相同);而默认的 hashCode 方法是根据内存地址换算出来的值,如果重写了 equals 方法而没有重写 hashcode 方法,那么即使两个对象比较的结果是 true,因为它们的内存地址必然不会相同,hashCode 方法返回的结果不会相同(不清楚底层到底是如何换算的倾城之恋张爱玲,是否有可能在小概率上会碰到相同的整型结果,暂不可知),显然不符合规范,必须重写hashcode方栅栏密码法使之符合规范。
注:hash西安建筑科技大学吧Code()之后再来补充
本文发布于:2023-06-04 07:30:16,感谢您对本站的认可!
本文链接:http://www.ranqi119.com/ge/85/214481.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |