背景
类加载机制作为一个高频的面试题经常会在面试中被问到, 前几天一个电话面试就问到, 之前有了解过, 但是没有梳理成自己的体系, 所以说的有点凌乱, 今天花点时间整理一下, 分享给大家同时自己也好好梳理一下, 顺便帮助一下有需要的人.
什么是类加载机制
众所周知我们编写的 Java 文件都是以. java 为后缀的文件, 编译器会将我们编写的. java 的文件编译成. class 文件, 简单来说类加载机制就是从文件系统将一系列的 class 文件读入 JVM 内存中为后续程序运行提供资源的动作.
类加载的流程
我们先看下类加载的过程中有哪些阶段, 后面再对其一一解释做了什么.
简单画了一个图, 从上图我们可以看出, 类加载的整个过程有五个阶段, 下面分别解释每个过程做了什么.
加载
通过一个类的完整路径查找此类字节码文件(class 文件即二进制文件). 将二进制文件的静态存储结构转化为方法区的运行时数据结构, 并利用二进制流文件创建一个 Class 对象, 存储在 Java 堆中用于对方法区的数据结构引用的入口;
来源: http://www.jianshu.com/p/a5961ff44b0f