【发布时间】:2012-12-10 21:47:48
【问题描述】:
如果我想知道数组的长度,我必须输入以下内容:
array.length
因此,它是一个变量,其中写入了称为'array'的数组的长度。
在字符串上,同样的事情看起来像这样:
string.length()
因此,它是一个返回“字符串”变量长度的方法。
但是为什么他们选择让这两个不同,而它基本上做同样的事情......这是因为效率还是其他原因?
提前谢谢你。
【问题讨论】:
-
第一个可以看作是对象数组的一个属性,第二个是访问对象字符串的方法。如果我错了,我正在等待纠正。
-
“为什么会这样”的问题通常不适用于本论坛。试试 (programmers.se](programmers.stackexchange.com)
-
这基本上是历史/传统。从理论上讲,数组可以使用
length()或字符串可以使用length(概念上是只读实例字段),但它们的开始方式不同。在代码解释/生成方面,将数组length作为伪字段有一些微小的优势,但这种优势虽然在 Java 诞生之初就存在,但在现代实现中已基本消失。 -
@JBNizet --
length是数组的公共字段,但没有人可以更改它。这是一个奇怪的特殊情况——架构上的一个缺陷。 -
我暂时忘记了final关键字,不知道为什么:-/
标签: java