我想知道 Java 数组的 length
的实现。我知道使用 arrayName.length
为我们提供了数组中元素的数量,但想知道这是一个方法/函数还是只是 Array 的一个数据成员?
我猜它一定是一个数据成员,因为我们在调用它时不使用括号()
。但是如果它是一个数据成员,这个 length
的值是如何/何时分配/计算的?
最佳答案
根据 Java 语言规范(特别是 §10.7 Array Members),它是一个字段:
- The
public
final
fieldlength
, which contains the number of components of the array (length may be positive or zero).
在内部,值可能存储在对象头中的某个位置,但这是一个实现细节,取决于具体的 JVM 实现。
HotSpot VM(流行的 Oracle(以前的 Sun)JRE/JDK 中的一种)stores the size in the object-header :
[...] arrays have a third header field, for the array size.
关于java - Java 数组中的长度是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5950155/