金三银四精选java面试题-== 和 equals 的区别?

发布时间:2023-11-27 10:25:34
 

== 和 equals 的区别?

  • ==:如果作用于基本数据类型变量,则直接比较其存储的值是否相等

如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等

  • equals:比较是否是同一个对象。equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,在没有重写equals()方法的类中,和==一样比较引用类型变量所指向的对象地址是否相等重写equals方法就看各个类重写后的逻辑,比如string类,虽然是引用类型,但是String类中重写了equals方法,方法内部比较的是字符串中的各个字符是否全部相等。
public void compareDemo1 () {
    int x = 10;
    int y = 10;
    //比较值相等,true
    System.out.println(x == y); // true

    String str1 = new String("baili");
    String str2 = new String("baili");
    //比较对象内存地址不相同,false
    System.out.println(str1 == str2); // false
    //比较字符相同,true
    System.out.println(str1.equals(str2)); // true

    String str3 = "abc";
    String str4 = "abc";
    //比较对象内存地址相同,true
    System.out.println(str3 == str4); // true
}

 
上一篇 金三银四精选java面试题-final、finally、finalize 的区别
下一篇 金三银四精选java面试题-两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题