数组实例化调用构造函数? [复制]
Posted
技术标签:
【中文标题】数组实例化调用构造函数? [复制]【英文标题】:Array instantiation calls a constructor? [duplicate] 【发布时间】:2014-06-15 15:48:32 【问题描述】:当在 java 中遇到 new 关键字时,会创建一个对象并调用构造函数。
那么在创建数组对象时调用了哪个构造函数。
例如 int[] a = new int[];
我们知道数组是对象。
【问题讨论】:
【参考方案1】:数组不使用构造函数进行初始化。如果你尝试编译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 中,数组有自己的创建方式,这与创建类对象不同。
【讨论】:
以上是关于数组实例化调用构造函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章