jvm类加载机制

时间:2021-04-08 13:01:42   收藏:0   阅读:0

  最近找工作,感觉差的太多了,要学的东西还很多。希望自己可以每天都学习会,加油!如果有写的不对的欢迎大家留言分享经验哦!

  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路径下的包,主要是自己写的类

自定义类加载器:负责加载用户自定义路径下的类

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!