关于java的非法向前引用
下面的注释这行代码为什么会报错:非法向前引用?
这个时候我debug都可以看到i的值是100.为什么不能打印出来呢?
public class Test { static { i = 100;// System.out.println("================================"+i); } public static int i=10; public static void main(String[] args) { System.out.println("此时 i 的输出为" + i); }}public class Test {public static int i = 10;static {i = 100;}public static void main(String[] args) {System.out.println("此时 i 的输出为" + i);}}
改成这样子,输出来的就是100了...
由此得出结论。
ClassLoader时
1.先检查static属性的声明
2.执行static{]语句块
3.给static属性赋值
2 楼 freezingsky 昨天 这个问题属于数据初始化顺序方面。