【高级开发进阶】1.1.1 启动类、扩展类、应用程序类加载器
学完本章中,读者需要回答:
1.类加载器的运行过程
2.类加载器分别在JRE的那些位置
3.什么是双亲委派机制?
我想大家一开始都想知道一个java文件是怎么在JVM里面运行的?
先上图帮助你理解,如图1.1.1.1所示。
图1.1.1.1 java文件如何在jvm运行的
文字表述一下执行顺序:
-
启动虚拟机 (C++负责创建) 【windows : bin/java.exe调用 jvm.dll Linux : java 调用 libjvm.so 】
-
创建一个引导类加载器实例 (C++实现)
-
C++ 调用Java代码,创建JVM启动器,实例sun.misc.Launcher 【这货由引导加载器负责加载创建其他类加载器】
-
sun.misc.Launcher.getLauncher() 获取运行类自己的加载器ClassLoader --> 是AppClassLoader
-
获取