四:类加载机制,双亲委派模型

本文介绍了Java类的加载机制,包括加载、验证、准备、解析、初始化、使用和卸载等步骤,还提及自定义类加载器的加密解密操作。同时阐述了系统类加载器和双亲委派模型,指出其好处是保证类的优先级,确保Object类的唯一性,若不采用该模型,应用程序将无法正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 类的加载机制

在这里插入图片描述

加载:找到类的位置, 将java 文件或字节流转换成虚拟机可以处理的内存中确实存在的对象
验证:检查每个java 文件对应class 文件符合不符合虚拟机的要求
准备: 给static 修饰的变量分配内存并且设置初始值
解析:将常量池的引用替换成实际值的过程
初始化:类加载最后一步。执行java 代码, 将static 修饰的代码块执行一遍
使用: 就是new 出的实例。此时才会使用构造方法
卸载:就是垃圾回收将new 出来的实例从虚拟机中移除

自己定义的类加载器, 对class 文件的加密解密等
系统类加载器
在这里插入图片描述

双亲委派模型
在这里插入图片描述
好处: 保证类有个合适的优先级。 object 是所有类的根类, 不管是哪个类加载器加载这个类都是通过双亲委派模型交给父类加载器(启动类加载器)去加载。 这样可以确保object 这个类在各个类加载器环境中都是同一个类

类本身+类加载器 共同决定这个类是否唯一, 如果同一个类由不同的类加载器加载, 也是2 个不同的类

如果不采用双亲委派模型去加载类, 每个类加载器都各自去加载object 类的话, 在使用时不知道应该继承那个类。底层最基础行为都无法保证, 应用程序也无法正常运行下去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值