java 静态变量在编译阶段就已经明确位置, 所以静态变量的声明与初始化在编码顺序上可以颠倒。也就是说可以先编写初始化的代码,再编写声明代码。如:
public class Test { // 静态变量的初始化 static { _i = 10; } // 静态变量的声明 public static int _i;}
所以如下代码可以被重读下
public class Test { static { _i = 20; } public static int _i = 10; public static void main(String[] args) { System.out.println(_i); }}//等价于如下代码public class Test { public static int _i; static { _i = 20; _i = 10; } public static void main(String[] args) { System.out.println(_i); }}