Java 面试题
目录

Java 中 new String("abc") 创建了几个对象?

· 约 1 分钟读完 · 第 29 / 274 章

推荐答案

在 Java 中,new String("abc") 创建了 两个对象。

本题详细解读

1. 字符串常量池中的对象

  • 当代码中出现 "abc" 时,Java 会首先检查字符串常量池中是否已经存在内容为 "abc" 的字符串对象。
  • 如果不存在,Java 会在字符串常量池中创建一个新的字符串对象,内容为 "abc"。
  • 如果已经存在,则直接引用常量池中的对象。

2. 堆内存中的对象

  • new String("abc") 会在堆内存中创建一个新的字符串对象,内容为 "abc"。
  • 这个对象是独立于字符串常量池的,即使常量池中已经存在相同内容的字符串,堆内存中仍然会创建一个新的对象。

总结

  • new String("abc") 会创建两个对象:
    1. 字符串常量池中的 "abc" 对象(如果之前不存在)。
    2. 堆内存中的 String 对象。

因此,new String("abc") 总共创建了 两个对象。