java - 数组实例化调用构造函数?

标签 java arrays

当java中遇到new关键字时,就会创建一个对象并调用构造函数。

那么创建数组对象时会调用哪个构造函数。

例如 int[] a = new int[];

我们知道数组是对象。

最佳答案

数组不使用构造函数来初始化。如果你尝试编译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 中有自己的创建方式,与创建类对象不同。

关于java - 数组实例化调用构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24231364/

相关文章:

c++ - 未分配正在释放的指针,动态数组 C++

javascript - 在 React 中返回数组时如何添加换行符?

PHP合并数组如果为空

javascript - 将键值对添加到数组中的对象 - Javascript

java - 如何在一组 RESTful 服务上构建可配置的外观

java - 如何在Android中设置字节[]长度的无符号整数

java - 如何通过时间戳属性过滤对象数组(通过 - 命令分区的 SQL 滞后的替代代码)

java - HashCode - 如果相同的对象恰好散列在同一个桶中会发生什么?

java - 是否可以将数值分配给 Java 中的枚举?

C 数组大小声明毫无意义?