一路走 一路学

本博客主要记载技术相关事件,希望能将自己学习成果分享给更多人!

JVM加载过程

任何程序的运行都需要先进行编译,得到可执行文件。之后运行该可执行文件,实际上就是将其加载到内存中的过程。

本文针对文件加载,以Java程序为例,进行详细阐述。

分析:Java的可执行文件是.class为后缀的文件,运行在Java虚拟机上(JVM)

加载过程:JVM加载class、


JVM加载class:

(1)执行java.exe,加载jre中jvm.dll文件,加载其它动态链接库,激活Java虚拟机。

(2)虚拟机加载系统配置文件,产生第一个类加载器:启动类加载器(BootstrapClassLoader),主要用于加载java API中包含的类文件;

(3)启动类加载器完成初始化工作,其中最重要的是加载Launcher.java,启动ExtendClassLoader和AppClassLoader,主要用于加载用户定义的类文件。

加载原则:双亲委托原则

首先,累加载器之间存在继承关系,也就是父子关系:启动类加载器<--扩展类加载器<--用户定义类加载器

原则:加载某一个类Test.class时,按常理应该先是最低级的类加载,但是JVM考虑到Java API被重写的安全因素,类加载器依次向上委托,因此类加载器使用的的顺序:

            启动类加载器-->扩展类加载器-->用户定义类加载器



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/skjyzs/article/details/46820539
个人分类: 编程思想
上一篇事务级别 锁 隔离级别
下一篇web.xml加载过程
博主设置当前文章不允许评论。

没有更多推荐了,返回首页

关闭
关闭