java程序如何执行(原理)

本文详细介绍了Java类的加载机制,包括基础类的预先加载、main()函数类的加载过程及按需装载机制。深入探讨了BootstrapLoader的作用,以及ExtClassLoader和AppClassLoader的工作原理。

1、java源程序编译成.class文件(类字节码文件)

2、JVM装载.class文件,执行


下面详细说一下装载过程

1)基础类的加载机制

java基础类是程序运行的基础,因此采用预先加载的机制。当启动一个程序时,java首先在JDK目录

下找到并载入jvm.dll,然后启动虚拟机。当启动虚拟机时会做一些初始化操作,如设置系统参数等。接着

会创建一个Bootstrap Loader对象,把它称为启动类的装载器,该装载器由c++编写,负责在虚拟机启动时

一次性加载JVM的基础类

2)main()函数类的加载机制

Bootstrap Loader另一项很重要的工作就是装载定义在sun.misc命名空间下的Launcher类。Launcher拥有

两个内部类ExtClassLoader和AppClassLoader。ExtClassLoader的父加载器被设置为null,表示

它的父加载器为Bootstrap Loader,AppClassLoader的父加载器设置为ExtClassLoader,拥有

main()函数的入口类,即由AppClassLoader在程序启动时加载

3)按需装载

当需要加载一个类时,JVM首先会检查这个类的Class对象是否已经加载,如果已经加载,便可以执行

想要执行的代码,如果这个类的Class对象未加载,则JVM先加载这个类,流程如下:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值