前文回顾
java文件运行流程:
类加载场景
类加载过程
类的加载一般会有以下过程:
加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载
需要注意的是,JVM在执行我们写好的代码的时候,只有代码中用到这个类的时候才会将这个类(.class)加载到内存中. 接下来分析一下类加载的过程: 比如有个类,User.class,其中的main方法为主入口,则JVM启动之后将User.class加载进内存,然后从主入口开始加载执行:
当代码需要实例Student对象时,就必须将Student.class文件加载到内存里,如图
- 验证 根据JVM虚拟机的规范验证加载进来的.class文件是否合法,是否又被篡改:
- 准备 准备阶段为类分配空间,包括静态变量等分配内存,默认赋值等操作:
- 解析 解析阶段就是将符号引用替换为直接引用的过程,涉及JVM底层原理,后续关注:
以上三个节点最重要的就是准备阶段