2025.02.17笔记 ~ langhai

林书豪
2025-02-17 22:58:04
2025.02.17笔记 浪海值:28度
文章标签:java基础面试题
文章摘要:2025.02.17笔记
使用新的显示器:新的显示器 如果遇到图片单击即可放大/缩小。

JVM

类加载器:用于装载字节码文件 .class文件。

BootStrap ClassLoader 启动类加载器  加载 JAVA_HOME/jre/lib。

ExtClassLoader 扩展类加载器 加载 JAVA_HOM/jre/lib/ext。

AppClassLoader 应用类加载器 用于加载开发者自己编写的Java类。


双亲委派模型

加载某一个类,先委派上一级的加载器进行加载,如果上级加载器也有上级,则会继续向上委托,如果该类委托上级没有被加载,子加载器尝试加载该类。

采用这种机制,可以保证某一个类只被加载一次,避免重复进行加载。当然也可以保证核心类库被恶意修改。


类装载的过程

生命周期 加载 连接 (验证 准备 解析 )初始化 使用 卸载

加载:通过类的全名,获取类的二进制数据流。

验证:验证类是否符合JVM规范,安全性检查。

准备:为类变量分配内存并设置类变量初始值。

解析:把类中的符号引用转换为直接引用。

初始化:对类的静态变量,静态代码块执行初始化操作。

使用:调用静态成员信息 使用new关键字创建对象实例。

卸载:当用户程序代码执行完毕之后,JVM开始销毁创建的Class对象。






提交评论