【发布时间】:2012-05-13 10:55:01
【问题描述】:
我在 Kathy Sierra 的书中读到,当我们使用像 String s = new String("abc") 这样的 new 运算符创建 String 时,因为我们使用了 new 关键字,Java 将在正常情况下创建一个新的 String 对象(非池) 内存,s 将引用它。此外,文字“abc”将被放置在池中。
intern() 表示如果 String 池中已经包含一个字符串,则返回池中的字符串,否则,将 String 对象添加到池中并返回对该 String 对象的引用。
如果使用 new 创建的字符串 "abc" 也将字符串放入池中,则 intern() 表示如果字符串池包含字符串,则返回池中的字符串,否则将字符串对象添加到池中。
另外我想知道如果我们使用 new 创建一个 String 那么实际上创建了多少个对象?
【问题讨论】: