长度在 Java 数组中是如何实现的?
我想知道Java数组的实现。我知道使用会给我们数组中的元素数量,但想知道这是一个方法/函数,还是它只是数组的数据成员?length
arrayName.length
我想它必须是一个数据成员,因为我们在调用它时不使用括号。但是,如果它是数据成员,如何/何时分配/计算此值?()
length
我想知道Java数组的实现。我知道使用会给我们数组中的元素数量,但想知道这是一个方法/函数,还是它只是数组的数据成员?length
arrayName.length
我想它必须是一个数据成员,因为我们在调用它时不使用括号。但是,如果它是数据成员,如何/何时分配/计算此值?()
length
根据 Java 语言规范(特别是 §10.7 数组成员),它是一个字段:
- 字段 ,它包含数组的分量数(长度可以是正数或零)。
public
final
length
在内部,该值可能存储在对象标头中的某个位置,但这是一个实现细节,取决于具体的 JVM 实现。
HotSpot VM(流行的Oracle(以前称为Sun)JRE / JDK中的VM)将大小存储在对象标头中:
[...]数组有第三个标头字段,用于数组大小。