JVM深度学习系列之类加载问题分析(一)

加载(加载IO流文件,并存储类信息在方法区)->

验证(格式验证,语义分析,操作验证)->

准备(为类中的所有静态变量分配内存空间,并为其设置一个初始值)->

解析(将常量池中的符号引用转为直接引用)->

初始化(将一个类中所有被static关键字标识的代码统一执行一遍,如果执行的是静态变量,那么就会使用用户指定的值覆盖之前在准备阶段设置的初始值;如果执行的是static代码块,那么在初始化阶段,JVM就会执行static代码块中定义的所有操作)

static的代码(包括静态代码块)是在类加载的初始化阶段执行的。

final修饰的变量是在类加载的加载阶段执行的,比static靠前

引自: https://www.cnblogs.com/xiaoxian1369/p/5498817.html

猜你喜欢

转载自blog.csdn.net/qq_29857681/article/details/85323603