黑马程序员——关于java中equals和==的区别
来源:互联网 发布:尾崎小野相关介绍 知乎 编辑:程序博客网 时间:2024/06/03 02:03
-------android培训、java培训、java学习型技术博客、期待与您交流! ----------
"=="和"!="比较的是"栈"中的内容,而equals()比较的是"堆"中的内容.
基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
他们之间的比较,只能用双等号(==),比较的是他们的值
复合数据类型(类)
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,
总之,"=="和"!="比较的是地址.也可认为"=="和"!="比较的是对象句柄;而equals()比较的是对象内容.
对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,Object类的equals方法的实现代码如下:
boolean equals(Object o)
{return this==o;}所以比较后的结果跟双等号(==)的结果相同。
④equals方法。用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:
String a=new String("foo");
String b=new String("foo");
两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,他们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b即返回false,而这两个对象中内容是相同的,所以,表达式a.equals(b)将返回true。
在实际开发中,我们经常要比较传递进行来的字符串内容是否相等,许多人稍不注意就使用==进行比较了,这是错误的,有大量这样的错误。记住,字符串的比较基本都是使用equals方法。
⑤如果一个类没有定义equals方法。它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object类继承的)就是使用==操作符,也是比较两个变量指向的对象是否是同一个对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可以认为两个对象的内容是相同的。
-------android培训、java培训、java学习型技术博客、期待与您交流! ----------
0 0
- 黑马程序员——关于java中equals和==的区别
- 黑马程序员——Java基础---关于equals和==的区别的理解
- 黑马程序员---- java中 equals 和 ==的区别
- 黑马程序员——Java中equals和==的区别
- 黑马程序员——equals和==的区别
- 黑马程序员_java中equals和==的区别
- 黑马程序员——Java面试题——equals和==的区别
- 黑马程序员——Java基础---equals和"=="的区别
- 黑马程序员——JAVA基础之 == 和equals区别
- 黑马程序员—C# equals与==的区别
- 黑马程序员--关于equals和“==”
- 黑马程序员----------equals和==的区别以及用法
- 黑马程序员-equals和==的用法以及区别
- 黑马程序员-==和equals的区别
- 黑马程序员---equals和"=="的区别
- 【黑马程序员】equals和==的区别
- 黑马程序员——"=="和 equals方法究竟有什么区别
- 黑马程序员----"=="和equals方法区别
- 黑马程序员----------Java语言概述
- ShareSDK的使用心得
- :undefined reference to `pthread_create’
- 7.12 一些心得体会
- UVALive 6755 - Swyper Keyboard
- 黑马程序员——关于java中equals和==的区别
- DMP文件的生成和使用
- A*寻路算法笔记 2011
- java解析xml四种方式(1)-DOM方式
- 大话设计之抽象工厂模式
- NYoj - 833 取石子(七)
- 简单分析网站要害词很快有排行
- 在Azure上实现网站的staging部署和部署交换
- 原创就原创