Java中equals和==的区别


  

引言:

经典面试题:java中“==”和“equals()”的区别。

一、比较运算符“==”的使用:

  1. 可以使用在基本数据类型变量和引用数据类型变量中

  2. 如果比较的是基本数据类型变量:

    比较两个变量保存的数据是否相等。(不一定类型要相同,如int和short比较)

  3. 如果比较的是引用数据类型变量:

    比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

  4. 补充:”==”符号使用时,必须保证符号左右两边的变量类型一致。

二、“equals()”方法的使用

  1. 是一个方法,而非运算符

  2. 只能适用于引用数据类型

  3. Object类中equals()的定义:

    public boolean equals(Object obj) {
    	return (this == obj);
    }

    说明:Object类中定义的equals()和”==”的作用是相同的:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

  4. 像String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的”实体内容”是否相同。

  5. 通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的”实体内容”是否相同。那么,我们就需要对Object类中的equals()进行重写.重写的原则:比较两个对象的实体内容是否相同.


文章作者: YangChongZhi
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 YangChongZhi !
评论
 上一篇
Java中的JUnit单元测试 Java中的JUnit单元测试
   引言: Java中的JUnit单元测试说明 一、步骤 确认开发环境(如Eclipse或IDEA)能正常使用JUnit 创建Java类,进行单元测试。 此时的Java类要求:① 此类是public的② 此类提供公共的无参的构造器
2021-01-01
下一篇 
Java中的Object类 Java中的Object类
   引言: java.lang.Object类相关知识点说明 Object类是所有Java类的根父类 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 Object类中的功能(属
2021-01-01
  目录