什么代码以及java.lang.reflect.Array在运行时如何创建新数组?

时间:2013-07-23 17:35:54

标签: java arrays reflection

我研究了Java源代码,方法如下:

public static Object newInstance(Class<?> componentType, int length)
    throws NegativeArraySizeException {
    return newArray(componentType, length);
}

private static native Object newArray(Class componentType, int length)
    throws NegativeArraySizeException;

似乎方法newArray()中没有任何代码来构建数组。任何人都可以解释它是如何构建数组的? Ť

2 个答案:

答案 0 :(得分:5)

这是native方法。

这意味着它是由JRE中的本机代码实现的。

答案 1 :(得分:1)

它被硬编码到JVM(而不是编译器)中。您可以下载OpenJDK或任何其他开源Java虚拟机的源代码,然后查看;)