这是Java中的构造函数分配内存的方式吗?

Vib*_*nha 2 java

创建对象后会自动调用默认构造函数.

但是在Java中我们使用new运算符分配内存时,即在新的内存分配给类成员之前classname obj = new classname(); 自动调用构造函数.

在类进入物理存在之后开始分配,但是如果新的运算符在调用默认构造函数后完成其进程,那么默认构造函数实际上是如何实现的,因为类还没有实际存在?

有人能用一个明确的例子解释我吗?

Jon*_*eet 9

这个过程基本上是:

  • 内存已分配
  • 执行去构造函数链(即所有this/ super每度评价任何参数以上水平,其他构造函数调用),但仅此而已
  • 执行去下来的实际构造器的构造链.因此,java.lang.Object首先执行构造函数的主体,然后执行直接子类等.这也是在执行变量初始化程序时执行的.(在此之前,变量的默认值为null等)
  • 引用返回给任何人 new

默认构造函数的概念在执行时没有意义.它只是一个无参数的构造函数,super()就JVM而言.

关于构造函数链的业务与它们是第一行的方法完全相同,第一行只链接到下一个构造函数; 它只是一堆电话.