龙空技术网

Java对象创建过程#知识点总结

柒捌位数 156

前言:

此刻各位老铁们对“c语言如何新建程序”大概比较注重,你们都想要了解一些“c语言如何新建程序”的相关知识。那么小编同时在网摘上网罗了一些关于“c语言如何新建程序””的相关内容,希望兄弟们能喜欢,大家一起来了解一下吧!

对象的创建过程如下图所示。在实例化一个对象时,JVM首先会检查目标对象是否已经被加载并完成初始化。如果没有,JVM需要立即加载目标类,并调用其构造器完成初始化。目标类的加载由类加载器完成,主要是将类加载到内存中。

初始化过程包括对目标类中的静态容量、成员变量和静态代码块进行初始化。完成初始化后,JVM可以从常量池中找到对应的类元信息,并确定目标对象的大小。

接下来,JVM会根据Iava堆内存的规整程度来决定内存分配方式。通常有两种方式:指针碰撞和空闲列表。JVM会根据Iava堆内存是否规整来决定内存分配方式。

完成内存分配后,JVM会将目标对象中的普通成员变量初始化为零值。例如,对于int类型的变量,其初始值为0;对于对象类型的变量,其初始值为0。(类变量在类加载的准备阶段就已经初始化过了)。这一步操作主要是确保对象中的实例字段可以直接使用,也就是程序能够获得这些字段对应数据类型的零值。

然后,JVM还需要对目标对象的对象头进行一些设置,例如对象所属的类元信息、对象的gc分代年龄、hushod、锁标记等。完成这些步骤后,对于JVM来说,新对象的创建工作已经完成。但是,对于Iava语言来说,对象创建才刚刚开始。接下来,JVM会执行目标对象内部生成的it方法。

it方法是Tava文件编译后在字节码文件中生成的,是一个实例构造器。它会将语句、块、变量初始化、父类构造器等操作组织在一起,因此调用it方法可以完成一系列的初始化操作。

标签: #c语言如何新建程序