当前位置: 首页 > 面试题库 >

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

单于庆
2023-03-14
问题内容

在Java中,数组是AN对象。我的问题是…创建新数组时是否调用了Object构造函数?我们希望利用这一事实来为Object构造函数提供一些额外的字节码,以检查所构造数组的长度。那行得通吗?


问题答案:

就Java语言规范而言,尽管它们都使用new关键字,但类实例创建表达式和数组创建表达式是不同的表达式形式,每种都有自己的规则。数组创建表达式的描述未提及调用构造函数。



 类似资料:
  • 问题内容: 当我们创建扩展抽象类的Subclass对象时,抽象类构造函数也会运行。但是我们知道我们不能创建抽象类的对象。因此,这是否意味着即使构造函数无任何例外地完成运行,也不能保证是否创建了对象吗? 问题答案: 因此,这是否意味着即使构造函数无任何例外地完成运行,也不能保证是否创建了对象吗? 简而言之,a 不会创建对象。它只是 初始化 对象的 状态 。创建对象的是操作员。现在,让我们详细了解一下

  • 问题内容: 我正在尝试修复我的一个程序中的错误,我认为这可能是由于Hibernate弄清楚了如何在不调用其默认(或任何其他)构造函数的情况下实例化对象的实例。 问题答案: 实际上,是的,如果使用objenesis为您实例化对象,则可以在实例化对象时绕过构造函数。它执行字节码操作来实现此目的。 反序列化对象也将绕过构造函数。 使用反射无法做到这一点。

  • 我正在从一个教程中重构下面的代码。当我< s >运行编译它时,我得到以下错误: Vierbeiner类中的构造函数Vierbeiner不能应用于给定类型;必需:java.lang.找到字符串:无参数原因:实际参数列表和正式参数列表长度不同 我的理解是,发生这个错误是因为父类Vierbeiner有一个需要字符串参数的构造函数,而没有一个不需要参数的构造函数。我不明白的是,为什么我在没有创建Hund类

  • 我学到了两件事: -操作符创建一个新实例,然后执行声明的connstuctor来初始化该新实例 根据我的理解,这些说法互相反对。 例如,不会创建两个实例,因为-操作符创建一个实例,构造函数调用并创建另一个实例?当然不会,但现在到底是什么创建了一个实例。。。?

  • 我在创建对象和参数化构造函数时遇到以下错误。 Main.java: 6:错误:构造函数Cipher类中的Cipher不能应用于给定类型 必需:无参数 找到:int 原因:实际参数列表和正式参数列表的长度不同 这是我的文件的样子

  • 问题内容: 构造函数何时被调用? 创建对象之前。 在对象创建期间。 创建对象之后。 问题答案: 分配对象内存,初始化具有初始值的字段变量,然后调用构造函数,但是其代码在对象超类的构造函数代码之后执行。