String.length()vs Array.length

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

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

Java中没有Array类(reflection除外)。 数组是Java中的一种“原语”,并且与声明的类的规则不同。

当然可以在数组上定义length()方法,但设计者希望将length保持为属性而不是伪方法。 (在某种程度上,这可能使早期的Java实现更容易。)原因在历史上有些埋没。

(一个更好的问题是为什么Java无法决定是否将这个概念称为“长度”,“计数”或“大小” – 我总是在尝试所有这三个之前尝试所有三个才能进行聚合课程。)