JVM 核心笔记:对象创建、生命周期与类加载器详解

目录

创建对象的过程

对象的生命周期

类加载器有哪些?

双亲委派模型

创建对象的过程

**1.类加载检查:**在一个对象被创建时,jvm会检查这个对象的类是否被加载加载过,如果没有被加载过则需要加载一次类之后,才能进行后面的步骤

2.分配内存: 进行类加载检查通过过后,jvm会为新对象分配一个从类加载过程中知道的合适的内存,把一块相应的内存从java堆里分出来

3.初始化零值: 在分配内存后,jvm会给内存空间初始化零值(不包括对象头),保证了对象的实例字段一开始不用赋值也能使用

**4.必要设置:**初始化过后虚拟机JVM会对对象进行必要设置,比如设置对象头,锁一类的属性

**5.执行init构造函数:**经过init构造函数后才能把对象从初始化的零值改成我们想要的内容

对象的生命周期

创建:在new之后,JVM为对象分配内存,初始化,设置对象头等操作,完成实例化

调用:对象被引用访问其属性,方法

销毁:当对象不再被引用,垃圾回收机制会自动回收对象所占空间,释放空间销毁对象

类加载器有哪些?

类加载器:把xxx.class加载进入JVM使其成为能被JVM识别的 java.lang.Class 对象

启动类加载器 (Bootstrap Class Loader):最顶层的加载器,负责加载Java的底层类如JVM中的java.util.*,由于Java层没有直接的ClassLoader 对象(通过 getClassLoader() 获取时返回 null)。

扩展类加载器/平台类加载器

扩展类加载器(Java8及以前) Extension Class Loader: 负责加载 jre/lib/ext 或由 java.ext.dirs 系统属性指定目录下的 jar 包和类库。

替换为平台类加载器(Java9及以后) Platform Class Loader: jre/lib/ext 目录和 java.ext.dirs 属性都已被移除。平台类加载器负责加载 JDK 中一些除核心模块外的平台类(如 java.sqljava.xml 等)。

在 Java 层面,它的 parent 字段实际为 null,但在委派逻辑上仍会先交给 Bootstrap ClassLoader 处理。

**应用程序类加载器(Application ClassLoader):**负责加载代码的类,可以通过ClassLoader.getSystemClassLoader()获取,其父加载器是Platform Class Loader (Java8后),之前是Extention Class Loader

自定义类加载器(Custom Class Loader):开发者可以根据需求定制类的加载方式,比如从网络加载 class 文件、数据库、甚至是加密的文件中加载类等。自定义类加载器可以用来扩展 Java 应用程序的灵活性和安全性,是 Java 动态性的一个重要体现。

双亲委派模型

有了上述这些加载器关系,就形成了双亲委派模型,核心思想就是当加载器收到一个类加载请求时,不会自己先去加载,而是先给父类加载器完成,只有当父类加载器完成不了时才会给本身加载每一层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中。

相关推荐
pkowner3 分钟前
若依分页问题及解决方法
java·前端·算法
2301_7815714234 分钟前
NumPy张量缩并怎么用_np.einsum()爱因斯坦求和约定高级索引魔法
jvm·数据库·python
largecode39 分钟前
如何让电话显示店名?来电显示店铺名称,提升有效接通率
java·开发语言·spring·百度·学习方法·业界资讯·twitter
xuhaoyu_cpp_java40 分钟前
SpringMVC学习(五)
java·开发语言·经验分享·笔记·学习·spring
计算机安禾1 小时前
【c++面向对象编程】第22篇:输入输出运算符重载:<< 与 >> 的友元实现
java·前端·c++
旷世奇才李先生1 小时前
Java虚拟线程原理与实践
java
中屹指纹浏览器1 小时前
2026平台集群式风控溯源体系研究与浏览器环境适配应对方案
经验分享·笔记
2303_821287381 小时前
MySQL行锁和表锁如何区分_通过explain查看锁等待机制.txt
jvm·数据库·python
heimeiyingwang1 小时前
【架构实战】RPC框架Dubbo3.0:高性能Java通信之道
java·rpc·架构
i220818 Faiz Ul1 小时前
宠物猫之猫咖管理系统|基于java + vue宠物猫之猫咖管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·宠物猫之猫咖管理系统