在制作自定义数据类型的数组时调用哪个构造函数?

Which constructor is called while making the array of a custom data type?

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

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

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

Is a constructor called in line 1 while instantiating the objects for the array

没有。不调用 Student 构造函数。它只分配一个 Student 类型的数组对象,大小为 2。数组中的所有元素将被初始化为 null.

当您分配给数组元素时,您必须创建一个新的 Student 对象。为此,您可能正在调用 Student class 构造函数。

s[0] = new Student();

目前,Student class 只有默认构造函数。