类加载机制
2022-04-10 18:52:35 0 举报
类加载机制描述(执行java指令运行程序流程、loadClass类加载过程和双亲委派机制)
作者其他创作
大纲/内容
加载过程
java.lang.ClassLoader#loadClass(\"com.dieu.road2architect.performance_optimization.classload.Math\")
JVM
向上委托
sun.misc.Launcher#getClassLoader
加载:在磁盘上查找并通过IO读入字节码文件。
解析:将符号引用替换为直接引用。
Math.javaUser.java...
初始化:对类的静态变量初始化为指定的值,执行静态代码块。
loadClass类加载过程
User.class
应用程序类加载器
双亲委派机制
父加载器加载失败由子加载器自己加载
准备:给类的静态变量分配内存,并赋予默认值。
获取运行类自己的加载器ClassLoader,是AppClassLoader的实例。
com.dieu.road2architect.performance_optimization.classload.Math#main
Windows环境下,java.exe调用底层jvm.dll文件创建JVM虚拟机(C++实现)
使用
拓展类加载器
C++调用Java代码创建一个JVM启动器,实例化sun.misc.Launcher,该类由引导类加载器负责加载其他类加载器。
JVM销毁
sun.misc.Launcher#getLauncher
调用loadClass加载要运行的类Math。
创建一个引导类加载器(C++实现)
自定义类加载器...
验证:校验字节码文件的正确性。
Java程序运行结束
引导类加载器
自定义类加载器1
加载完成后,JVM会执行Math类的main方法入口。
jar包java Math.classmain()
自定义类加载器2
com.dieu.road2architect.performance_optimization.classload.Math
编译、打包
执行java指令运行程序流程
0 条评论
下一页
为你推荐
查看更多