美文网首页
java面试==、equals方法相关

java面试==、equals方法相关

作者: pr0metheus | 来源:发表于2018-03-25 17:26 被阅读0次

笔试题目一:==与equals方法的区别?

答案:== 比较的是值,而对于equals方法如果被比较的对象没有覆盖equals方法的话那么比较的还是内存地址,如果覆写了equals方法那么我们才能说比较的是对象的内容。 例如String就覆写了equals方法比较的是字符串中的内容而我们自定义的类如果没有去覆写equals方法的话那么还是会从Object对象中继承equals方法,那么只会比较对象的内存地址。

代码如下:

public class EqualsTest {
    public static void main(String[] args) {
        String str = new String("abc");
        String str2 = new String("abc");
        System.out.println(str == str2);
        System.out.println(str.equals(str2));
    }
}

结果大家都知道:false、true

再看下面一段代码

public class EqualsTest {
    public static void main(String[] args) {
        Object obj = new Object();
        Object obj2 = new Object();
        System.out.println(obj == obj2);
        System.out.println(obj.equals(obj2));
    }
}

结果是:false、false

查看Object的源代码:

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

所以对于没有覆盖equals的方法的类,用它的对象去进行equals比较的时候还是会采用对象内存地址的比较。

知识点:在自定义类的时候如果该类需要进行相等性比较的话,那么就要覆写equals的方法

相关文章

  • java面试==、equals方法相关

    笔试题目一:==与equals方法的区别? 答案:== 比较的是值,而对于equals方法如果被比较的对象没有覆盖...

  • java-equals方法

    equals equals 方法是 java.lang.Object 类的方法。java默认的equals方法是比...

  • Java 比较相等

    Java Equals() 特性 Equals() 和 == 的区别 重写Equals方法 重写HashCode方法

  • 重写equals 方法的注意事项

    java.lang.Object 中的equals方法如下 什么时候需要重写equals方法 使用equals方法...

  • equals和hashCode

    Java 常用常见知识点 在实际工作中或者面试中总会遇到下面的Java基础: [x] equals方法 [x] h...

  • java基础面试题

    java基础面试常见问题汇总 面向对象的特征有哪些方面? Object类中的方法 ==和equals方法的区别 八...

  • 面向对象语言特性

    ——Java中的equals()和== Java中的equals和==不仅是笔试面试中的常客,同时也是我们在写代码...

  • Interview之一:hashCode 与equals

    1、hashCode 与 equals Java中的equals方法和hashCode方法是Object中的,所以...

  • JAVA基础

    java基础 equals实现 object的方法 clone,equals,notify,notifyall,h...

  • Java基础系列-equals方法和hashCode方法

    原创文章,转载请标注出处:《Java基础系列-equals方法和hashCode方法》 概述 equals方法和h...

网友评论

      本文标题:java面试==、equals方法相关

      本文链接:https://www.haomeiwen.com/subject/iufkcftx.html