zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【集合我能讲两小时064】为什么MAX_ARRAY_SIZE是Integer.MAX_VALUE减去8,而不是别的数字?

集合 为什么 数字 value Array 不是 小时 size
2023-09-27 14:29:28 时间
为什么MAX_ARRAY_SIZE是Integer.MAX_VALUE减去8,而不是别的数字?
  • 数组在java中是一种特殊的数据类型,既不是基本类型也不是引用类型。不是类,没有class文件,数组是jvm从元素类型中合成出来的元素。
  • 在jvm中获取数组的长度使用arraylength这个专门的字节码指令,在数组的对象头中有一个_length字段,记录数组的长度,只需要去读_length字段就可以了
  • 所以这个8就是存了数组_length字段