在java中创建一个String会自动创建一个String的新对象吗?

时间:2014-04-05 11:11:51

标签: java string

我知道实习,但如果我有类似以下的内容怎么办?

String str = "before";
str = "after";

因为它们不是同一个字符串,所以会为“after”创建一个String的新对象,如果是,那么“之前”会发生什么?

只是为了澄清,实习的时间是什么时候发生的?仅当创建了具有相同文字的两个字符串时?

1 个答案:

答案 0 :(得分:1)

"前"将在创建时添加到String池中。那么当"之后"创建后,它也会添加到String池中。 只有参考将指向"""现在而不是之前。

注意:它们将被创建"只有当它们不存在于字符串池中时才会出现。