首页 > 代码库 > Java误区: 静态代码块,会在类被加载时自动执行?

Java误区: 静态代码块,会在类被加载时自动执行?

JAVA静态代码块会在类被加载时自动执行?

        很多Java开发者的思想,被这个思想深深的轮奸了n遍,传播这个错误思想的博客,在网上一堆,越来越多的人被轮奸。

        如:http://blog.csdn.net/leeyu35/article/details/7755304


那么我们程序来证明这句话是错误的:

class MyClass1 {
	static {//静态块
		System.out.println("static block ");
	}
}
public class Main {

	Class[] classArray = {
			MyClass1.class//这样引用该类,必然需要将该类加载到虚拟机中
	};
	public static void main(String[] args){
		System.out.println("hello word");
	}

}

执行结果:并没有输出" static bolck"


那么什么时候才会调用静态块呢?我找到一篇,介绍比较详细的博客。

http://www.cnblogs.com/ivanfu/archive/2012/02/12/2347817.html



Java误区: 静态代码块,会在类被加载时自动执行?