基础知识:
1、HotSpot虚拟机中,如果对象是一个Java数组,那在对象头中会保存一块用于记录数据长度的数据,从数组的元数据中无法确定数组的大小。
2、对象的内存布局:对象头,实例数据,填充
数组:
对于一个原始类型的数组,一般需要24字节的头信息再加上保存值所需要的内容。
24字节的头信息分别包含:1、对象开销 --16字节 2、用于保存长度 --4字节 3、填充字节 -- 4字节
以int[]类型数组为列,假设数组长度为N,那么需要占用的内存数量为24+4N
64位架构的计算机,每个对象引用地址为8位
数组在Java中是没有显示的类。它是由JVM动态去创建数组类,并是一个空类,没有构造器,没有注解,没有成员变量,成员方法。
获取数组长度是由一条特定的指令arraylength实现
public class Main {
public static void main(String[] args) {
i int a[] = new int[2];
int i = a.length;
}
}