String.length()vs Array.length

时间:2012-08-22 22:17:20

标签: java programming-languages

  

可能重复:
  Why is String.length() a method?
  Java - Array's length property

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

1 个答案:

答案 0 :(得分:7)

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

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

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