标签:经验 工作 系统 获取 应用 getc dll ext class
最近找工作,感觉差的太多了,要学的东西还很多。希望自己可以每天都学习会,加油!如果有写的不对的欢迎大家留言分享经验哦!
jvm类加载流程:
Main方法中有一个类Math.class类,当加载math类的时候,
1.Windows系统下 java.exe会调用底层的jvm.dll文件创建虚拟机(由C++实现);
2.jvm会创建一个引导类加载器实例(c++实现)
3.C++会调用java代码,创建jvm启动器Launcher,通过getLauncher方法获取到当前运行的类加载器
Launcher 该类由引导类加载器加载,负责加载其他的类加载器
4.调用Launcher类中的getClassLoader(),获取到自己的类加载器,该类是应用类加载器实例
5.调用loadClass()加载要运行的类Math
6.加载完成,JVM会调用Math类的main方法入口
类加载器分为四种:
启动类加载器:负责支撑JVM运行的位于jre的lib目录下的核心类库 :rt.jar、charsets.jar等
扩展类加载器:负责支撑JVM运行的位于jre的lib目录下的Ext扩展类中的jar类包
应用类加载器:负责加载classPath路径下的包,主要是自己写的类
自定义类加载器:负责加载用户自定义路径下的类
标签:经验 工作 系统 获取 应用 getc dll ext class
原文地址:https://www.cnblogs.com/wsweet/p/14624526.html