JVM_01类加载机制
2022-09-01 20:35:10 0 举报
AI智能生成
JVM学习总结---类加载机制
作者其他创作
大纲/内容
sun.misc.Launcher
由c++实现的引导类加载器加载
并创建其他类加载器,相当于其他类加载器的启动类
构造方法
初始化了 扩展类加载器对象
初始化了 应用类加载器对象
基础点
jvm加载属于懒加载,再有再用它得时候才会去加载
主类在运行过程中如果使用到其它类,会逐步加载这些类。
jar包或war包里的类不是一次性全部加载的,是使用到时才加载。
构造方法在类加载完之后才会执行
过程
加载
验证
准备
解析
初始化
类加载器
引导类加载器
JRE的lib目录下
例子:System.out.println(String.class.getClassLoader()); --->null
类路径
Launcher.getBootstrapClassPath().getURLs()
扩展类加载器
JRE的lib目录下的ext扩展目录中
System.out.println(com.sun.crypto.provider.DESKeyFactory.class.getClassLoader());
父加载器是引导类加载器(是父加载器,不是父类)
类路径
System.getProperty("java.ext.dirs")
应用程序类加载器
System.out.println(TestJDKClassLoader.class.getClassLoader());
父加载器是扩展类加载器(是父加载器,不是父类)
类路径
System.getProperty("java.class.path")
双亲委派机制
概念
实现方法
为什么要设计双亲委派机制
沙箱安全机制
避免类的重复加载
自定义类加载器
打破双亲委派机制
全盘负责委托机制
自定义类加载器
只需要继承 java.lang.ClassLoader 类
loadClass(String, boolean)
findClass
打破双亲委派机制
0 条评论
下一页