JVM - 类加载机制

2017-05-12  本文已影响27人  ouyangan

本文内容主要来源于《分布式java应用与基础实践》

类加载机制

类加载机制是指.class文件加载到jvm生成class对象,然后在代码中可以实例化class对象并进行调用。类加载机制不仅可以加载本地的.class还可以运行时动态加载.class ,并且通过类加载机制达到类隔离的效果。比如tomcat中可以部署多个war包就是通过类隔离机制来实现的。
整个类加载过程分为三个步骤:

Paste_Image.png

装载

装载过程负责将二进制字节码加载到jvm中,通过类的全限定名和类加载器完成类的加载,并且使用类的全限定名和类加载器实例id来标识被加载的类:com.test.Demo+ClassLoader实例id。类的命名规范如下:

链接

该过程主要是对二进制字节码进行校验,初始化静态变量以及设置默认值,解析类调用的接口和类,对类中属性和方法进行验证。

初始化

初始化过程包括:执行静态代码块,构造器,静态属性的初始化。在以下四中情况下会进行初始化操作:

类加载机制

从JDK1.2版本开始引入如下图所示的双亲委派模型。什么叫双亲委派模型:除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。具体工作过程:如果一个类加载器收到类加载请求,它首先会将请求动作委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传递到顶层的启动类加载器中,只有当父类加载器反馈自己无法加载请求时(在它的搜索范围内没有找到所需的类),子加载器才会尝试自己去加载。

Paste_Image.png
上一篇 下一篇

猜你喜欢

热点阅读