1 类加载机制
2022-07-31 11:12:50 0 举报
AI智能生成
登录查看完整内容
jvm类加载机制
作者其他创作
大纲/内容
加载
验证字节码文件正确性
验证
静态变量分配内存和赋值
准备
编译期间完成
静态链接
运行期间完成
动态链接
字面量替换成内存的指针(或者偏移量、句柄)
符号引用替换直接引用
解析
初始化静态变量
执行静态代码
运行时常量池、类型信息、字段信息、方法信息、类加载器的引用、对应class实例的引用
初始化
使用
卸载
loadClass加载类
类加载的过程
加载jre/lib下的核心类库
引导类加载器
加载jre/lib/ext下的jar
扩展类加载器
加载classPath下的自己写的类
应用程序加载器
加载用户自定义路径下的类包
自定义加载器
4种类加载器
类加载器
loaderClass方法实现双亲委派机制,不需要重写
重写findClass方法
只需继承java.lang.ClassLoader
自定义类加载器
先找父亲加载,不行再由儿子自己加载,加载过就不会加载
类加载器亲子级结构
自己写的和api一致的类不会被加载
防止核心api被篡改
沙箱安全机制
保证被加载的类唯一性
避免类的重复加载
为什么要设计双亲委派机制
多个应用程序独立且相互隔离、容器依赖的类库与应用隔离
相同类库相同版本可以共享
jsp修改后不用重启
为何要打破
类加载器委派关系
基本类加载器,加载的可以被tomcat容器和应用访问
CommonClassLoader
私有类加载器,只能容器访问
CatalinaClassLoader
共享类加载器,应用共享,tomcat容器不可见
SharedClassLoader
应用类加载器,只对当前应用可见
WebAppClassLoader
同一个jvm非亲子关系的加载器加载的相同包下的相同类可以共存
自定义类加载器详解
tomcat打破双亲委派机制
自定义类加载器,继承ClassLoader类,重写loadClass方法
使用线程上下文类加载器
如何打破
打破双亲委派机制
双亲委派机制
类加载机制
0 条评论
回复 删除
下一页