学习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

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.