Java equals方法
来源:互联网 发布:斯蒂芬库里 知乎 编辑:程序博客网 时间:2024/06/07 07:08
关于equals()方法对于String类与Object类及其子类是不同的。String为特殊类,其equals()方法做了特殊处理,因为String是不可变类型,所以比较的是对象的内容,而对于Object及其子类比较的是对象的地址。
public class Demo{int width;public Demo(int width){this.width = width;}public static void main(String[] args){Demo demoA = new Demo(3);Demo demoB = new Demo(3);Demo demoC = demoB;System.out.println(demoA == demoB);//falseSystem.out.println(demoC == demoB);//trueSystem.out.println(demoA == demoC);//falseSystem.out.println(demoA.equals(demoB) );//false 比较的仍然是对象的地址System.out.println(demoB.equals(demoC) );//trueSystem.out.println(demoC.equals(demoA) );//false//底层equals()的实现//public boolean equals(Object obj) {//return (this == obj); //比较指针对象的地址// }System.out.println("--------------" );String str = "123";String str1 = new String("123");String str2 = new String("123");System.out.println(str1.equals(str2) );System.out.println(str1 == str2);//String类底层的equals()实现//public boolean equals(Object anObject) {//if (this == anObject) {// return true;//}//if (anObject instanceof String) {// String anotherString = (String)anObject;// int n = count;// if (n == anotherString.count) {//char v1[] = value;//char v2[] = anotherString.value;//int i = offset;//int j = anotherString.offset;//while (n-- != 0) {// if (v1[i++] != v2[j++])//return false;//}//return true;// }//}//return false;// }}}
0 0
- 构建 Java equals 方法
- java中的equals()方法
- JAVA重写equals方法
- JAVA重写equals方法
- Java实现equals方法
- java 重写equals方法
- Java Equals方法
- java中的equals 方法
- Java equals() 方法总结
- Java中的equals()方法
- Java equals方法
- Java Object equals方法
- java equals方法
- java中的equals方法
- Java equals方法
- Java equals方法
- Java equals 方法解析
- java 的 equals()方法
- IEnumerable和IEnumerator 详解
- 使用ArrayList.add()时 后面的数据完全覆盖前面的数据
- iOS、MAC开源项目及库汇总
- brew的使用命令
- 初识openstack
- Java equals方法
- js计算器
- visudo 配置
- BZOJ 3931 CQOI 2015 网络吞吐量 最大流 最短路
- 安卓动态调试方法总结
- 堆
- php之函数
- Array.from()
- 三种纯css方法实现等高列