当前位置: 首页 > 图灵资讯 > java面试题> == 与 equals 有什么区别?

== 与 equals 有什么区别?

来源:图灵教育
时间:2024-01-18 10:03:34
 

== 与 equals 有什么区别?

  • ==:
    • 用于基本类型比较时,比较值是否相等;
    • 用于引用类型比较时,比较对象的内存地址是否相等。
  • equals:
    • 默认是比较对象的内存地址,但大多数类都会重写equals方法来改变默认的行为,使其比较对象的内容而不是对象的内存地址。比如 string、Integer 重写了equals方法变成比较值是否相等。
@Test
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
}