微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jvm类加载机制

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

  jvm类加载流程:

  Main方法中有一个类Math.class类,当加载math类的时候,

  1.Windows系统下 java.exe会调用底层的jvm.dll文件创建虚拟机(由C++实现);

  2.jvm会创建一个引导类加载器实例(c++实现)

  3.C++会调用java代码,创建jvm启动器Launcher,通过getLauncher方法获取到当前运行的类加载器     

   Launcher 该类由引导类加载器加载,负责加载其他的类加载器

0  0

  4.调用Launcher类中的getClassLoader(),获取到自己的类加载器,该类是应用类加载器实例


0


0

  5.调用loadClass()加载要运行的类Math

0

   
0

  6.加载完成,JVM会调用Math类的main方法入口

 

 

类加载器分为四种:

启动类加载器:负责支撑JVM运行的位于jre的lib目录下的核心类库 :rt.jar、charsets.jar等

扩展类加载器:负责支撑JVM运行的位于jre的lib目录下的Ext扩展类中的jar类包

应用类加载器:负责加载classpath路径下的包,主要是自己写的类

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐