JVM类加载机制

在地铁上看了会书,看到了JVM实现类加载的原理,寻思记录一下。

java程序运行在JVM之上,jvm的运行状况对java程序来说有很重要的影响。JVM的结构大概是这样的。


JVM负责将class文件加载并执行,也就是说我们平时写的java代码,在sun的JDK的编译下,输出class文件,JVM将输出的class文件进行加载执行。JVM的类加载机制分为三个步骤,装载,连接和初始化。

1 装载

JVM通过类的全类名以及类加载器ClassLoader完成类的加载。

2 链接

类加载完成之后,通过链接过程负责对二进制字节码的格式进行校验,初始化装载类中的静态变量以及解析类中调用的接口,类。

完成校验后,JVM初始化类中的静态变量,并将其值赋为默认值。最后对类中的所有属性方法进行验证,以确保其要调用的属性 方法存在,以及具备相应的权限,比如public private等等。

3 初始化

初始化过程即执行类中的静态初始化代码(static{ ... }),构造器代码以及静态属性的初始化。

初始化过程有:new的调用,反射调用,子类初始化调用,JVM启动过程中指定的初始化类



这是JVM加载类的过程。。。

参考资料是《分布式Java应用:基础与实践》


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值