📌  相关文章
📜  教资会网络 | UGC NET CS 2015 年 12 月 – III |问题 41(1)

📅  最后修改于: 2023-12-03 14:54:48.994000             🧑  作者: Mango

UGC NET CS 2015 年 12 月 – III | 问题 41

这是一道关于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

这是因为 str1str2 都指向了相同的字符串对象 "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()` 方法,该方法比较两个字符串对象的内容是否相同。