阿里资深架构师:讲讲我对JVM架构的理解( 三 )

应用程序类加载器 – 负责加载应用程序级别类路径 , 涉及到路径的环境变量等etc.

上述的类加载器会遵循委托层次算法(Delegation Hierarchy Algorithm)加载类文件 。

1.2 链接

校验 – 字节码校验器会校验生成的字节码是否正确 , 如果校验失败 , 我们会得到校验错误 。

准备 – 分配内存并初始化默认值给所有的静态变量 。

解析 – 所有符号内存引用被方法区(Method Area)的原始引用所替代 。

1.3 初始化

这是类加载的最后阶段 , 这里所有的静态变量会被赋初始值 并且静态块将被执行 。

2. 运行时数据区(Runtime Data Area)

运行时数据区域被划分为5个主要组件:

方法区(Method Area)– 所有类级别数据将被存储在这里 , 包括静态变量 。 每个JVM只有一个方法区 , 它是一个共享的资源 。

推荐阅读