java中的equals和==
来源:互联网 发布:wp footer js文件 编辑:程序博客网 时间:2024/06/11 20:48
讨论java中equals和==的区别
java中的数据类型包括基本数据类型以及引用数据类型。
所以对于equals和 == 二者之间的区别也分俩种情况讨论。
①基本数据类型:基本数据类型是不能使用equals()方法的,他们存储在堆栈中,使用 == 比较的是俩个变量的值是否相同。
②引用数据类型:引用数据类型的变量在栈中仅仅是存储引用类型变量的地址,其本身是存储在堆中的。
==对于引用类型变量表示的是俩个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals()比较俩个对象的内容是否相同。
显然: equals()比较为true时,==不一定为true.
查看了以下Object的equals()方法:
public boolean equals(Object obj) { return (this == obj); }验证了:Object中的equals和==是一样的效果。
再查看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重写了父类Object的equals()方法。如果字符串的内容相同,则也返回true.
String str1 = new String("zhangsan");String str2 = new String("zhangsan");System.out.println(str1 == str2);System.out.println(str1.equals(str2));运行结果:false true
备注:自己定义了类之后,要想实现不同与Object的equals()方法,必须重写equals()方法。
"=="比"equal"运行速度快,因为"=="只是比较引用.【引用http://blog.csdn.net/xcysuccess3/article/details/6557771】
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中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- java中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- 解决Android与Java web的rsa加密算法的方法
- python 删除版本号文件夹vxxx 保留几个高版本
- Redis 3.2.1集群搭建
- 细说线程上
- oracle11g安装过程提示swap size 检查失败问题
- java中的equals和==
- 安卓学习笔记——多线程和异步消息处理机制
- Set操作UVa 10815Andy's First Dictionary
- 網頁設計% JQuery checkbox控制div邊框變色
- RDD基础学习-[4]PairRDD聚合函数基础
- Chapter 2. System Startup and Shutdown
- js数组操作
- 小程序审核流程
- 51单片机复位电路原理