【发布时间】:2017-08-27 13:20:27
【问题描述】:
在 Java 中我们通常这样做:
Class myObject = new Class();
因为new 关键字返回一个地址。
但是为什么我们可以这样做呢?:
String myString = "Hello";
好像String 是一个原始人?
我问过我的老师,他回答说这是因为引号中的内容相当于一个地址,但他不确定。你可否确认?
“Hello”是否存储在 String 类的实例变量中?
【问题讨论】:
-
表面上看,这是因为 Java 在这方面很混乱。将其视为该语言的例外。 Cf C++ 没有这种特殊处理扩展到“标准”对象。我很高兴你问这样的问题。投赞成票!
-
本身不是重复的,因为建议的重复是关于 c#
-
@Ousmane 这不是 Java 问题
-
注意:“具有文字形式”!=“是原始类型”
-
“相当于一个地址”!地址的概念在 Java 语言规范(SE 8 版)中或多或少是陌生的:我只在
final字段的语义 下看到它(在这个意义上)。字符串文字只是String类型的表达式,正如 T.J.克劳德的回答。