关于java的非法向前摘引
关于java的非法向前引用
下面的注释这行代码为什么会报错:非法向前引用?
这个时候我debug都可以看到i的值是100.为什么不能打印出来呢?
改成这样子,输出来的就是100了...
由此得出结论。
ClassLoader时
1.先检查static属性的声明
2.执行static{]语句块
3.给static属性赋值
下面的注释这行代码为什么会报错:非法向前引用?
这个时候我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); } }
1 楼
wingware
昨天
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
昨天
这个问题属于数据初始化顺序方面。