混淆创建对象

时间:2013-12-03 11:12:02

标签: java object

我刚刚开始使用Java。但是当我进入第一章时,我有一个很大的难题。 它说我们在创建句柄时必须“初始化”句柄,例如String s = "asdf",之后它说我们再次为字符串s String s = new String("asdf");创建一个新对象。

我认为字符串s在“初始化”中已经有了一个对象(asdf),但为什么我们仍然需要重新创建它(如果我理解正确的话)?

希望有人可以向我解释这一点,在书中它只是被跳过了。

1 个答案:

答案 0 :(得分:2)

String str1 = "asdf";               //This is a String literal
String str1 = new String("asdf");   //This is a String object

String 对象位于上,而文字位于公共池上,用于字符串文字。

Noe如果您执行String s = "asdf";然后String s = new String("asdf");,则会因重新声明s而收到编译错误。

有关详细信息,请参阅JLS