the*_*der 3 java language-agnostic primitive object literals
然而,在我脑中又一次挫折之后,我又在重新审视Java(参见我的个人资料).这里也提出了类似的问题,但我没有提出这个问题.
我一直都明白这String是什么.即,官方API中明确表达的An对象.但是我一直在阅读这个数据类型的Java指南.
对我来说这个概念很清楚.原语是文字.即,它们无法实例化,并按以下方式分配值:
primtype prim =?;
Run Code Online (Sandbox Code Playgroud)
关于Java的官方指南似乎(正确地)将String标识为文字,但忽略了标准被视为文字的标准.鉴于java.lang.String它确实是一个java.lang.Obect(通过扩展),一个String存在Object与一个literal谎言之间的根本区别仅在于如何将变量分配给值 - 仅仅是赋值(文字)与构造(对象)相对应?如果您能帮忙澄清一下,请随时向我们提供更深入的资源?
我还想知道文字的标准是否在不同语言中是一致的(如果这意味着"弱类型"语言只使用文字?)
我认为你混淆了原始和文字.
类型可以是基本类型,也可以是对象类型(即从Object继承).
文字只是表示代码中"字面上"的值的表示.这可以表示原始类型或对象类型.
所以'字面型'并没有真正意义.字符串永远不是文字,它始终是一个对象.文字只是在代码中表示字符串的一种可能方式.
其他语言的治疗方法差异很大.例如,在C#中,所有东西都派生自Object,包括Java中"原始"的类型.
它只被称为文字,因为你可以这样做:
"this is a string"
Run Code Online (Sandbox Code Playgroud)
而不是必须做这样的事情:
new String(new char[] {'t', 'h', 'i', 's' ...})
Run Code Online (Sandbox Code Playgroud)
例如,文字5,或9.3f,或'd'.因此,String(构造的"this")将属于该类别.
非文字的一个例子是new Object();.如果您String使用new关键字创建一个,那么它不是文字.
但是,一旦String完成,它根本不重要.他们仍然是相同的字符串,不管你让喜欢"this"或new String(new char[]{'t','h','i','s'}).
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |