类加载器初始化过程

类加载器类别:

引导类加载器:BootStrapLoader 负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如 rt.jar、charsets.jar等

扩展类加载器:ExtClassLoader  负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR 类包

应用程序加载器:AppClassLoader 负责加载ClassPath路径下的类包,加载自己写的那些类

自定义加载器:负责加载自己自定义路径下面的类包

类加载器初始化过程:

执行java.exe命令的时候,会调用c++库创建jvm虚拟机,然后创建引导类加载器实例,引导类加载器实例在调用java代码创建JVM启动器实例sun.misc.Launcher(单例),创建Launcher的时候,构造方法里会初始化ExtClassLoader和AppClassLoader,JVM会调用Launcher的getClassLoader()去获取运行类自己的加载器AppClassLoader,调用loadClass加载要运行的类,加载完成的时候JVM会执行类的main方法入口。

猜你喜欢

转载自blog.csdn.net/XiWangDeFengChe/article/details/121946889