刚才看到一篇帖子这样回答的: java里面"定义类"的语句没有先后问题谈谈静态块/ 静态变量/ 静态方法 之间的关系, 先请看一段代码!
代码一:
class Test1 { //此对象无法实例化,也无法装载,
static {
System.out.println(A);
}
public static void print() {
System.out.println(A);
}
private static final int A = 121; //原因在这里! }
代码二:class Test1 { //可以运行的程序!
public static void print() { //静态方法没有Load到内存?》
System.out.println(A);
}
private static final int A = 121;
static {
System.out.println(A);
}
}
由上面的例子看出, 类装载 并没有将静态方法load到内存!~以上纯属个人看法, 如有错误请给予更正, 还有些区别的话,请给予补充!~ 谢谢!~
静态方法和静态变量和他有关系么?。。
第二段程序中static块是在A定义之后定义的,所以运行就没有问题了。
至于print方法。在类加载的时候只是将它的定义加载进来。并不会执行,所以是否定义了A并没有影响。
这里就有写了,写的很清楚