java笔试面试必考题(二)到底创建了几个String对象
时间: 2024-01-21 19:04:23 浏览: 23
在以下代码中:
```
String str1 = "hello";
String str2 = new String("hello");
String str3 = "hello";
String str4 = str2.intern();
String str5 = str1 + str3;
```
一共创建了4个String对象。具体来说:
1. `String str1 = "hello";` 这行代码创建了一个String对象,存储在常量池中。
2. `String str2 = new String("hello");` 这行代码创建了两个String对象:一个存储在堆内存中,另一个存储在常量池中。
3. `String str3 = "hello";` 这行代码并没有创建新的String对象,而是将常量池中已经存在的对象赋值给了`str3`。
4. `String str4 = str2.intern();` 这行代码创建了一个String对象,存储在常量池中。
5. `String str5 = str1 + str3;` 这行代码创建了一个新的String对象,存储在堆内存中。