创建的String对象数

时间:2014-06-15 10:24:48

标签: java string

我正在阅读认证书,在这里我遇到了令人困惑的问题。书中说这行代码只创建一个String对象,但我认为创建了2个对象。我是对的吗?

String summer = new String("Summer");

不是常数文字"夏天"创建并放置在String常量池中?

编辑:伙计们我感到困惑,我需要确切的答案。这里有不同的帖子说1对象& 2对象正在创建。

2 个答案:

答案 0 :(得分:6)

创建可能是您混淆的原因。实际上,你是对的:行

中涉及两个字符串实例
String summer = new String("Summer");

由于涉及两个字符串实例,因此必须在某个时间和某个时间创建它们。

创作时间差别很大。 "Summer"是一个常量,在加载包含此常量的类时会加载到内部字符串池中。因此,在加载类时会创建此内部字符串实例。

在运行包含此行的代码时,会创建变量summer引用的字符串对象。那就是它。

答案 1 :(得分:1)

String summer = new String("Summer");

这将只创建一个String实例。 <= 1}}之前,它不会出现在字符串池中。