静态代码块执行时机

静态变量在准备阶段赋默认零值,在初始化阶段赋用户值,静态代码块在初始化阶段执行spa

 

本质上,static int a = 2 code

是要分红两步blog

  static int a;class

  static {a = 2}变量

也就是说,im

准备阶段,静态变量赋予零值static

初始化阶段,静态代码块执行(包括对静态变量的赋值)img

public class StaticBlockDemo { static int a = 2; static { // 若是在准备阶段,则a = 0; // 若是在初始化阶段, a = 2;
 System.out.println(a); } public static void main(String[] args) { } }

相关文章
相关标签/搜索