数组在java里是一种特殊类型,既不是基本数据类型(开玩笑,当然不是)也不是引用数据类型。
有别于普通的“类的实例”对象,java里数组不是类,所以也就没有对应的class文件,数组类型是由jvm从元素类型合成出来的;在jvm中获取数组的长度是用arraylength这个专门的字节码指令的;
在数组的对象头里有一个_length字段,记录数组长度,只需要去读_length字段就可以了。

所以ArrayList中定义的最大长度为Integer最大值减8,这个8就是就是存了数组_length字段。
ArrayList中MAX_ARRAY_SIZE为什么是 Integer.MAX_VALUE - 8 以及数组在java中到底是什么数据类型
Java数组特性详解
最新推荐文章于 2024-01-12 23:06:33 发布
本文深入探讨Java中数组的独特性质,揭示其既非基本数据类型也非引用数据类型的特殊地位。文章解析了数组在JVM中的实现机制,包括数组长度的存储方式及获取方法,以及与ArrayList最大长度设定的关系。
1389

被折叠的 条评论
为什么被折叠?



