📅  最后修改于: 2023-12-03 14:54:48.994000             🧑  作者: Mango
这是一道关于Java编程语言的问题。如果你是一名Java程序员,你可以尝试回答这个问题。
考虑如下的Java程序:
class Test {
public static void main(String[] args) {
String str1 = "Hello World";
String str2 = "Hello World";
boolean b1 = (str1 == str2);
boolean b2 = str1.equals(str2);
System.out.print(b1 + " " + b2);
}
}
程序的输出是什么?
答案是:
true true
这是因为 str1
和 str2
都指向了相同的字符串对象 "Hello World"
,所以 str1 == str2
返回 true
。另一方面,str1.equals(str2)
返回 true
是因为 String
类重载了 equals()
方法,该方法比较两个字符串对象的内容是否相同。
Markdown 代码片段:
## 问题
考虑如下的Java程序:
```java
class Test {
public static void main(String[] args) {
String str1 = "Hello World";
String str2 = "Hello World";
boolean b1 = (str1 == str2);
boolean b2 = str1.equals(str2);
System.out.print(b1 + " " + b2);
}
}
```
程序的输出是什么?
## 解答
答案是:
```
true true
```
这是因为 `str1` 和 `str2` 都指向了相同的字符串对象 `"Hello World"`,所以 `str1 == str2` 返回 `true`。另一方面,`str1.equals(str2)` 返回 `true` 是因为 `String` 类重载了 `equals()` 方法,该方法比较两个字符串对象的内容是否相同。