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被重写的安全因素,类加载器依次向上委托,因此类加载器使用的的顺序:

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值