使用.length和.length()查找长度有什么不同

时间:2014-06-08 10:13:37

标签: java object

前者(.length)甚至不是一个函数,它如何返回长度?

1 个答案:

答案 0 :(得分:3)

length在数组中不起作用的原因是它是一个字段。特别是,Java语言规范部分10.7指定的public final

虽然ArrayList(1.0库的ad Vector)有length()方法,但要实现的关键是这个值可以改变。您在Vector上调用了add(Object o),并且您已经更改了它的长度。

另一方面,您无法更改数组的长度。

  

创建数组对象后,其长度永远不会改变。要使数组变量引用不同长度的数组,必须为变量分配对不同数组的引用。

(来自JLS Section 10.2 - 数组变量)

因此,最简单的方法是将长度作为一个字段。一个是公开的,无法改变的。

在Java 1.0天内实现,HotSpot并不像现在这样先进。它无法通过内联方法完成所有优化。因此,为了使需要它的情况更快地进行数组访问,它就是一个字段。

Stack Overflow上的相关阅读:length and length() in java