码迷,mamicode.com
首页 > 其他好文 > 详细

jvm类加载机制

时间:2021-04-08 13:01:42      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:经验   工作   系统   获取   应用   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路径下的包,主要是自己写的类

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

 

jvm类加载机制

标签:经验   工作   系统   获取   应用   getc   dll   ext   class   

原文地址:https://www.cnblogs.com/wsweet/p/14624526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!