==
是运算符
equals()
方法是Object类的方法,Object类是所有类的父类,所以,所有的对象都有equals()方法。
如果类没有重写继承自Object的equals()方法,则代码如下:
可见,默认的equals()方法内部是使用==
运算符判断是否equal的。
Java里的equals()方法实际上是交给开发者去覆盖重写的,让开发者去定义满足什么条件的两个Object是equal的。
例如String类重写的equals()方法:
总结:
- 比较对象是值变量,用
==
判断相等性。 1.比较对象是引用型变量,使用==
,判断引用所指的对象是否是同一个,比较的是变量句柄地址。如果对象没有重写equals()
方法,使用equals()方法判断和==
是一样的,但是如果重写了equals()方法,比较结果就和equals()具体实现相关了。 - 两个String类型的变量进行比较,equals()比较的是两个字符串对象是否包含相同的内容,==比较的是这两个字符串是否是同一个。
- 字符串的比较实用equals()代替==操作符。
- Integer和Long等包装类因为有缓冲机制,才保证引用一致。