8

可能重复:
为什么 String.length() 是一种方法?
Java - 数组的长度属性

关于为什么 String 具有长度方法但 Array 具有可变长度,是否有特定的设计/性能原因?

4

1 回答 1

8

Java中没有Array类(反射除外)。数组是 Java 中的一种“原语”,按照与声明的类不同的规则进行操作。

当然,length()可以在数组上定义一个方法,但设计者希望将其保留length为属性而不是伪方法。(在某种程度上,这可能使早期的 Java 实现更容易。)原因在某种程度上已被历史所掩盖。

(一个更好的问题是为什么 Java 无法决定是否将概念称为“长度”、“计数”或“大小”——我总是在为聚合类找到正确的一个之前尝试所有这三个。)

于 2012-08-22T22:44:00.410 回答