在java中遇到new关键字时,会创建一个对象并调用构造函数。
创建数组对象时调用哪个构造函数。
例如int [] a = new int [];
我们知道数组是对象。
答案 0 :(得分:2)
Arrays不使用构造函数进行初始化。如果您尝试编译int[] array = new int[10];
,您将获得类似下面的字节码:
bipush 10
newarray int
astore_1
另一方面,Person p = new Person();
的字节码指令如下所示(注意调用new
和init
表示对构造函数的调用):
new test/Person
dup
invokespecial test/Person/<init>()V
astore_2
因此,数组在JVM中有自己的创建方式,与创建类对象不同。