在Java中创建数组时是否调用了Object构造函数?

Pet*_*aný 8 java arrays construction instrumentation object

在Java中,数组是一个对象.我的问题是......是在创建新数组时调用的Object构造函数吗?我们希望使用这个事实来检测Object构造函数,并使用一些额外的字节码来检查正在构造的数组的长度.那会有用吗?

kdg*_*ory 6

根据JVM规范:"使用一组不同的指令创建和操作数组." 因此,虽然数组是对象的实例,但它们的初始化方式与其他对象的初始化方式不同(如果从该链接锚点向上滚动,则可以看到).


Pat*_*han 1

就Java语言规范而言,虽然都使用new关键字,但类实例创建表达式数组创建表达式是不同形式的表达式,各有其自己的规则。数组创建表达式的描述没有提到调用构造函数。