equals方法
来源:互联网 发布:淘宝中药材哪家好 编辑:程序博客网 时间:2024/05/16 14:02
当某个对象的equals的方法没有重写时(也就是直接继承Object类),它的用法就是和“==”的作用一样,用于比价两个对象的引用是否相等。
package cn.galc.test;public class TestEquals { public static void main(String[] args) { /** * 这里使用构造方法Cat()在堆内存里面new出了两只猫, * 这两只猫的color,weight,height都是一样的, * 但c1和c2却永远不会相等,这是因为c1和c2分别为堆内存里面两只猫的引用对象, * 里面装着可以找到这两只猫的地址,但由于两只猫在堆内存里面存储在两个不同的空间里面, * 所以c1和c2分别装着不同的地址,因此c1和c2永远不会相等。 */ Cat c1 = new Cat(1, 1, 1); Cat c2 = new Cat(1, 1, 1); System.out.println("c1==c2的结果是:"+(c1==c2));//false System.out.println("c1.equals(c2)的结果是:"+c1.equals(c2));//false }}class Cat { int color, weight, height; public Cat(int color, int weight, int height) { this.color = color; this.weight = weight; this.height = height; }}
但是,String对象已经重写了equals方法
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
所以比较String对象的时候,equals方法比较的是两个引用对象的内容是否相等。
本文借鉴于http://www.cnblogs.com/xdp-gacl/p/3637073.html,原作者的文章更好。
0 0
- equals方法
- equals方法
- equals()方法
- Equals()方法
- equals方法
- equals()方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- equals方法
- 接口篇(5.2)-04. 透明模式连接 ❀ 飞塔 (Fortinet) 防火墙
- Ubuntu下Adroid Studio运行Genymotion 模拟器报错:Unable to load Virtualbox engine解决
- Android Volley入门到精通:初识Volley的基本用法
- 利用Oledb操作XLS文件
- 勇士队输了。。。。。。
- equals方法
- How to access HBase from spark-shell using YARN as the master on CDH 5.3 and Spark 1.2
- 为什么不能使用Thread.stop()方法?
- int指令
- Maven常用插件介绍:Maven-assembly-plugin插件
- Android之PopupWindow,dialog设置日期
- Android中补间动画的基本使用
- Dynamics CRM2013 导入解决方案(快速视图窗体)SystemForm With Id Does Not Exist的解决方法
- 【Java】form表单提交中文乱码