如何“记住”equals()和==的区别?

==是运算符code

equals()方法是Object类的方法,Object类是全部类的父类,因此,全部的对象都有equals()方法。对象

若是类没有重写继承自Object的equals()方法,则代码以下: 输入图片说明继承

可见,默认的equals()方法内部是使用==运算符判断是否equal的。图片

Java里的equals()方法其实是交给开发者去覆盖重写的,让开发者去定义知足什么条件的两个Object是equal的。

例如String类重写的equals()方法: 输入图片说明开发

总结:

  1. 比较对象是值变量,用==判断相等性。 1.比较对象是引用型变量,使用==,判断引用所指的对象是不是同一个,比较的是变量句柄地址。若是对象没有重写equals()方法,使用equals()方法判断和==是同样的,可是若是重写了equals()方法,比较结果就和equals()具体实现相关了。
  2. 两个String类型的变量进行比较,equals()比较的是两个字符串对象是否包含相同的内容,==比较的是这两个字符串是不是同一个。
  3. 字符串的比较实用equals()代替==操做符。
  4. Integer和Long等包装类由于有缓冲机制,才保证引用一致。
相关文章
相关标签/搜索