下面这段代码分别输出什么? public static void main(String[] args) { String str1 = "abc"; String str2 = new String("abc"); System.out.println(str1 == str2); System.out.println(str1.equals(str2)); }
时间: 2024-01-17 12:05:34 浏览: 122
Java String对象使用方法详解
下面这段代码分别输出:
```
false
true
```
原因如下:
- 第一行代码比较的是str1和str2的引用是否相等,因为str1是在字符串常量池中创建的,而str2是在堆上创建的新对象,所以它们的引用不相等,返回false;
- 第二行代码比较的是str1和str2的内容是否相等,因为它们的内容都是"abc",所以返回true。注意,这里是调用了String类的equals方法进行比较,而不是使用==运算符比较引用。
阅读全文