目录
一、Java的类加载机制
1.概述
类是在运行期间第一次使用时,被类加载器动态加载至 JVM 。JVM不会一次性加载所有类。因为如果一次性加回载,那么会占用很多的内存。
2.类的生命周期
类的生命周期包括以下 7 个阶段:
- 加载 (Loading)
- 验证 (Verification)
- 准备 (Preparation)
- 解析 (Resolution)
- 初始化 (nitialization)
- 使用 (Using)
- 卸载 (Unloading)
(1)加载
加载是类加载的第一个阶段,注意不要混淆。
加载过程完成以下几件事:
- 通过类的完全限定名称获取定义该类的二进制字节流。
- 将该字节流表示的静态存储结构转换为 Metaspace 元空间区的运行时存储结构0
- 在内存中生成一个代表该类的 class对象,作为元空间区中该类各种数据的访问入口其中二进制字节流可以从以下方式中获取:
- 从 ZIP 包读取,成为 JAR 、EARWAR 格式的基础
- 从网络中获取,最典型的应用是 Applet 。
- 运行时计算生成,例如动态代理技术