“==”符号与equals()的“爱恨情仇”
作者:互联网
==操作符和equals()方法
==操作符与equals()方法
-
==:
- 基本类型的比较,只要两值相等即为true。
int a=5; int b=5; System.out.println(a==b);
运行结果:
true
引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,==才返回true。
package Demo01; public class Application { public static void main(String[] args) { p1=new Person(); Person p2=new Person(); Person p1=p2; System.out.println(p1=p2); } }
运行结果:
true
用“==”进行比较时,符号两边的数据类型必须兼容(可自动转换基本数据类型除外),否则编译出错
-
equals():
所有类都继承了Object,也就获得了equals()方法,还可以重写。
只能比较引用类型,其作用与“==“相同,比较是否指向一个对象。
格式:obj1.equals(obj2)
特例:当用equals()方法进行比较时,对类File、String、Date及包装类(Wrapper class)来说,是比较类型及内容而不是考虑引用的是否是指向同一个对象;
-
对于String,”==“是比较对象的内存地址,equals是比较内容(值)
"=="和equals ()方法的区别
-
“==” 比较的是两个引用在内存中指向的是不是同一对象(即同一内存空间),也就是说在内存空间中的存储位置是否一致。
-
equals,常用的是对象里面的内容是否相等
标签:指向,对象,情仇,equals,Person,爱恨,true,比较 来源: https://www.cnblogs.com/zled/p/14028546.html