Java 中 == 与 equals() 的区别:代码示例及解释

在 Java 中,== 运算符和 equals() 方法用于比较对象,但它们的工作方式不同。本文将通过代码示例来解释它们的区别。

代码示例:

String str1 = 'Hello';
String str2 = new String('Hello');
boolean result1 = (str1 == str2);
boolean result2 = str1.equals(str2);

代码解释:

  1. String str1 = 'Hello';:这行代码创建了一个字符串对象 str1,并将其赋值为 'Hello'。在 Java 中,字符串字面值可以直接赋值给字符串变量。

  2. String str2 = new String('Hello');:这行代码使用 new 关键字创建了一个新的字符串对象 str2,并将其赋值为 'Hello'。通过 new 关键字创建的字符串对象是独立的,即使内容相同,也会在堆内存中创建新的对象。

  3. boolean result1 = (str1 == str2);:这行代码使用 == 运算符将 str1str2 进行比较,并将比较结果赋值给布尔型变量 result1== 运算符用于比较两个对象的引用是否相等,即判断两个对象是否引用同一块内存。

  4. boolean result2 = str1.equals(str2);:这行代码使用 equals() 方法将 str1str2 进行比较,并将比较结果赋值给布尔型变量 result2equals() 方法用于比较两个对象的值是否相等,即判断两个对象的内容是否相同。

结论:

== 运算符用于比较两个对象的引用,即判断两个对象是否指向同一块内存地址。而 equals() 方法用于比较两个对象的值,即判断两个对象的内容是否相同。

在这段代码中,str1str2 的内容都是 'Hello',但它们所引用的对象是不同的。因此,result1 的值为 false,因为 str1str2 的引用地址不同。而 result2 的值为 true,因为 equals() 方法会比较 str1str2 的内容,发现它们的内容相同。

总结:

  • 在比较字符串对象时,使用 equals() 方法来比较内容是否相同,使用 == 运算符来比较引用是否相同。
  • 在大多数情况下,应该使用 equals() 方法来比较字符串对象,因为 == 运算符可能无法得到预期的结果。

扩展:

如果您需要更具体的解释,请提供相关的代码片段或更多的上下文信息。

Java 中 == 与 equals() 的区别:代码示例及解释

原文地址: https://www.cveoy.top/t/topic/SMt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录