码上敲享录 > java面试题及答案大全 > == 和 equals 的区别是什么?

== 和 equals 的区别是什么?

上一章章节目录下一章 2023-07-11已有318人阅读 评论(0)

"=="和"equals()"是Java中用于比较对象的操作符和方法,它们之间有以下区别:


1. "=="操作符:在比较基本数据类型时,"=="是比较它们的值是否相等;在比较引用类型(对象)时,"=="是比较两个对象的内存地址是否相等,即判断它们是否是同一个对象的引用。


2. "equals()"方法:在比较引用类型(对象)时,"equals()"方法是比较对象的内容是否相等,即判断两个对象是否具有相同的属性或状态。通常情况下,需要重写自定义类的"equals()"方法,以定义对象相等的条件。


举个例子来说明:


```java

String str1 = new String("Hello");

String str2 = new String("Hello");

String str3 = str1;


System.out.println(str1 == str2); // false,虽然内容相同,但是引用不同

System.out.println(str1 == str3); // true,引用相同

System.out.println(str1.equals(str2)); // true,内容相同

```


在这个例子中,str1和str2是两个不同的String对象,它们的引用地址不同,所以使用"=="比较结果为false。而str1和str3引用同一个String对象,所以使用"=="比较结果为true。无论是使用"=="还是"equals()",最重要的是根据实际需求来选择适合的比较方式。


需要注意的是,对于自定义的类,如果不重写"equals()"方法,默认情况下会继承自Object类的"equals()"方法,该方法使用的是"=="操作符进行比较,即比较对象的引用地址。因此,如果要比较对象的内容是否相等,需要在自定义类中重写"equals()"方法。


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交