java - 对创建对象感到困惑

标签 java object

我刚刚开始接触 Java。但当我读到第一章时,我有一个很大的困惑。 它说我们在创建句柄时必须“初始化”句柄,例如 String s = "asdf",稍后它说我们为字符串 s< 创建了一个新对象 再次,String s = new String("asdf");

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

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

最佳答案

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

字符串对象位于上,而文字位于字符串文字的公共(public)池上。

不,如果你执行 String s = "asdf"; 然后 String s = new String("asdf"); 你会得到一个编译错误重新声明s

请参阅JLS欲了解更多信息。

关于java - 对创建对象感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20349558/

相关文章:

java - 如何将代码生成从 xpand 迁移到 xtend(2)?

java - Android(大)在浮点值产品上失败

java - Maven 中的 FirebaseApp

java - 严重: Allocate exception for servlet myServletName

对象结构的Javascript转换数组

java - JSR-303 类型 java 字段验证是否始终/隐式在字段验证之前运行?

c# - C# 中静态方法的类实例化

java - apache tiles 与自定义 tagx ("fragment")

c++ - 从函数返回一个包含另一个对象的对象

c++ - C++ 中的 vector 指针和通过引用传递对象