Java 生成自定义数据类型的数组时调用哪个构造函数?

Java 生成自定义数据类型的数组时调用哪个构造函数?,java,arrays,object,jvm,instantiation,Java,Arrays,Object,Jvm,Instantiation,在为数组实例化对象时,是否在第1行调用构造函数?如果是,并且它是默认的,那么假设我们从我们这边编写一个参数化构造函数。既然JVM提供的默认构造函数不再存在,那么现在调用什么呢?如果有人能够解释在执行第1行中的语句时发生的确切步骤,这将非常有帮助。谢谢 是在为数组实例化对象时在第1行中调用的构造函数 否。未调用学生构造函数。它仅分配大小为2的Student类型的数组对象。数组中的所有元素都将初始化为null 在指定给数组元素时,必须创建一个新的Student对象。为此,您可以调用学生类构造函数 c

在为数组实例化对象时,是否在第1行调用构造函数?如果是,并且它是默认的,那么假设我们从我们这边编写一个参数化构造函数。既然JVM提供的默认构造函数不再存在,那么现在调用什么呢?如果有人能够解释在执行第1行中的语句时发生的确切步骤,这将非常有帮助。谢谢

是在为数组实例化对象时在第1行中调用的构造函数

否。未调用学生构造函数。它仅分配大小为2的Student类型的数组对象。数组中的所有元素都将初始化为null

在指定给数组元素时,必须创建一个新的Student对象。为此,您可以调用学生类构造函数

class Student
{
    private String name;
    private int rollno;
}

public void someMethod()
{
    Student s = new Student[2];  // line 1
    // do something here
}

目前,学生类只有默认构造函数。

你的问题是什么?我有多个问题,取决于标题中的答案是什么。我想如果我以树的形式把它们都提到,那就太好了。社区显然不喜欢它,这造成了混乱。我道歉。我已编辑了问题的正文。希望它现在有意义。在上面的代码中根本没有调用
Student
的构造函数。您只需初始化一个大小为2的数组,其中两个索引都将指向
null
s[0] = new Student();