java static块的执行次数

来源:互联网 发布:特殊字符软件 编辑:程序博客网 时间:2024/05/20 06:51

比较有意思的一段代码,可以先运行看效果再将注释取消后看运行效果,上代码

/** *  * 每个对象实例化的时候,都要路过static方法 * 但是编译器会保证static快的执行是原子的,即便是多线程过来也要一个个执行 * 只不过,只有第一个实例动作的时候static快内的代码被执行 * 其他实例只是“路过” * 即,每个实例都要走到static块,但是static块只会执行一次, * 是通过调用该类的 client方法导致的,该方法只在类被加载的时候JVM调用 * @author liuinsect * */public class StaticBlockTest  implements Runnable{static{if(true){System.out.println("test");//while(true){////}}}@Overridepublic void run() {System.out.println("run");}/** * @author liuinsect  * @date 2013-2-7 * @param args */public static void main(String[] args) {StaticBlockTest s = new StaticBlockTest();StaticBlockTest s1 = new StaticBlockTest();//StaticBlockTest s2 = new StaticBlockTest();//StaticBlockTest s3 = new StaticBlockTest();//StaticBlockTest s4 = new StaticBlockTest();//StaticBlockTest s5 = new StaticBlockTest();Thread t1 = new Thread(s);Thread t2 = new Thread(s1);t1.start();t2.start();}}

 

原创粉丝点击