JVM对象创建步骤简述及内存分配方式

需积分: 0 0 下载量 181 浏览量 更新于2024-01-18 收藏 21.71MB DOCX 举报
后端知识库(八股文大全 没事的时候再看)JVM1. JVM 对象创建步骤流程是一个后端开发人员需要非常了解的重要知识点。在Java应用程序中,对象的创建是一个非常基础且频繁的操作,因此理解JVM如何进行对象创建的步骤流程对于优化程序性能和避免内存泄漏等问题都非常重要。具体的创建步骤可以总结为以下几个关键步骤: 第 1 步:类加载检查 当虚拟机遇到一个new指令时,首先会检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用的类是否已经被加载、解析、初始化。如果没有进行加载,那么就需要先进行类的加载。类加载是指将类的字节码文件加载到内存,并为之创建一个Class对象的过程。这是对象创建的第一步,确保所需的类已经被加载到内存中。 第 2 步:分配内存 类加载检查通过之后,接下来进行新生对象的内存分配。对象生成需要的内存大小在类加载完成后便可确定,为对象分配空间等同于在Java堆中划分出一块确定大小的内存。内存大小的划分可以分为两种情况。一种是JVM的内存是规整的,所有的使用的内存都放到一边,空闲的内存在另外一边,中间放一个指针作为分界点的指示器。这种情况下内存的分配比较简单,只要将指针向空闲空间那边挪动一段与对象大小相同的距离。另一种情况是JVM的内存不是规整的,也就是说已使用的内存与未使用的内存相互交错。这时候就需要维护一张表,用于记录那些内存可用,在分配的时候从列表中找到一块足够大的空间。这两种情况的内存分配方式各有特点,但都是为了为新的对象分配足够的内存空间。 第 3 步:初始化 对象的内存分配完成后,接下来是对象的初始化。在初始化阶段,虚拟机会对对象进行必要的设置,比如将对象的成员变量初始化为0或null。这一步确保了对象在被创建后处于一个合法的初始状态,可以在需要的时候立即使用。 第 4 步:构造函数 对象的初始化完毕后,接下来是调用对象的构造函数。构造函数是用来对对象进行进一步的初始化工作,比如对成员变量赋初值、执行一些特定的操作等。构造函数的具体内容由程序员根据对象的需求来定义,可以进行各种初始化工作。 总结来说,JVM对象创建的步骤流程包括类加载检查、内存分配、初始化和构造函数。这些步骤保证了对象在被创建后能够被正确地初始化和准备好在程序中被使用。对于后端开发人员来说,了解这些步骤对于理解Java程序运行原理和优化程序性能都非常重要。因此,建议后端开发人员在闲暇之余再次阅读JVM对象创建的相关知识,加深对其的理解和掌握。