<分区>
我们知道数组是Java中的对象。我相信要用面向对象的语言
创建一个对象
(如果没有,我们可以单独讨论),我们需要它的蓝图(一个类)。但是我不确定或找不到在使用 new operator
时为数组创建对象的类。如果java中有一个数组类,那么层次结构会是什么样子?
如果没有类,那么对象是如何实例化的呢?没有类的对象类型背后的原因是什么?
<分区>
我们知道数组是Java中的对象。我相信要用面向对象的语言
创建一个对象
(如果没有,我们可以单独讨论),我们需要它的蓝图(一个类)。但是我不确定或找不到在使用 new operator
时为数组创建对象的类。如果java中有一个数组类,那么层次结构会是什么样子?
如果没有类,那么对象是如何实例化的呢?没有类的对象类型背后的原因是什么?
最佳答案
数组是由虚拟机使用称为newarray 的特殊指令创建的,因此将它们视为一种特殊结构。
来自 JVM Spec :
3.9. Arrays
Java Virtual Machine arrays are also objects. Arrays are created and manipulated using a distinct set of instructions. The newarray instruction is used to create an array of a numeric type. The code:
另请阅读 JLS 中的更多内容用于数组的类层次结构。
The direct superclass of an array type is Object.
关于java - Java中是否有一个数组类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536672/