黑马程序员技术交流社区

标题: java中静态代码块和构造代码块 [打印本页]

作者: phil    时间: 2015-2-5 23:06
标题: java中静态代码块和构造代码块
1、静态代码块的执行:
public class StaticTest {
    static
    {
        System.out.println("hello,world!");
        System.exit(0);
    }
    public static void main(String[] args)
    {
        System.out.println("main");
    }
}

在这段代码中,StaticTest类一加载,首先就执行了static代码块,虽然这里有main函数,只是这段代码的入,通过Eclipse的断点测试,根本就没有执行到就结束了,这里的main函数就是为了让代码能够执行才有的。

2、构造代码块的执行:
public class StaticTest {
    static
    {
        System.out.println("静态代码块!");
        //System.exit(0);
    }
   
    {
      
        System.out.println("构造代码块!");
    }
   
   
    public static void main(String[] args)
    {
        StaticTest st = new StaticTest();  //在对象一建立的时候就调用
        System.out.println("主函数!");   
    }
}

在这段代码中,有一个构造代码块,这个代码块是在对象一建立的时候就调用,在函数体中,他的执行时间是看对象是什么时候建立的。

3、总结:静态代码块是在类一被加载的时候就执行,如果在静态代码块中加入System.exit(0);语句,则会直接结束这个程序,不会再执行main函数中的语句。而构造代码块则不同,因为要先建立对象,再调用代码块中的语句,所以main函数是肯定要执行的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2