String.length()vs Array.length

Cha*_*ani 8 java programming-languages

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

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

Hot*_*cks 7

ArrayJava中没有类(除了反射之外).数组是Java中的一种"原语",并且与声明的类的规则不同.

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

(一个更好的问题是为什么Java无法决定是否将这个概念称为"长度","计数"或"大小" - 我总是最终尝试所有这三个,然后才能找到合适的聚类.)