学习JVM原理-13.类加载时的Preparation阶段
摘自《深入理解Java虚拟机》周志明著 Preparation阶段为static变量并设置初始值. 这里要区别变量是不是final. 1. public static final int abc = 123; 实际上对应两步: a. 编译时即在constant pool里生成123这个字面量 b. 在prepration阶段再赋值为123 2. public static int abc = 123; 也可以分做两步: a. preparation阶段先把abc赋值为0; b. 在initialize阶段才赋值为123