下面程序的运行结果是 public static void main(String[] args) { String str1 = "hello"; String str2 = "he" + new String("llo"); String str3 = "he" + "llo"; System.err.println(str1 == str2); System.err.println(str1 == str3); }
时间: 2023-12-10 21:40:35 浏览: 247
一个用java编的Hhello程序
程序的运行结果是:
```
false
true
```
解释如下:
1. `str1` 和 `str2` 的比较结果为 `false`,因为它们是不同的对象。`str1` 是通过字符串常量池创建的字符串对象,而 `str2` 是通过 new 关键字创建的字符串对象,它不在字符串常量池中。虽然 `str2` 的值和 `str1` 相同,但是它们的引用地址不同,所以比较结果为 `false`。
2. `str1` 和 `str3` 的比较结果为 `true`,因为它们都是在字符串常量池中创建的字符串对象,且它们的值相同,所以比较结果为 `true`。
阅读全文