推荐答案
在 Java 中,new String("abc") 创建了 两个对象。
本题详细解读
1. 字符串常量池中的对象
- 当代码中出现
"abc"时,Java 会首先检查字符串常量池中是否已经存在内容为"abc"的字符串对象。 - 如果不存在,Java 会在字符串常量池中创建一个新的字符串对象,内容为
"abc"。 - 如果已经存在,则直接引用常量池中的对象。
2. 堆内存中的对象
new String("abc")会在堆内存中创建一个新的字符串对象,内容为"abc"。- 这个对象是独立于字符串常量池的,即使常量池中已经存在相同内容的字符串,堆内存中仍然会创建一个新的对象。
总结
new String("abc")会创建两个对象:- 字符串常量池中的
"abc"对象(如果之前不存在)。 - 堆内存中的
String对象。
- 字符串常量池中的
因此,new String("abc") 总共创建了 两个对象。