现在的位置: 首页 > 综合 > 正文

JAVA静态块和非静态块的区别

2014年11月10日 ⁄ 综合 ⁄ 共 825字 ⁄ 字号 评论关闭

 

//静态块(static block):如下所示

public class StaticBlock1

{

       static

       {

              System.out.println("static block");

       }

       public static void main(String[] args)

       {

               System.out.println("main");

       }

}

/**

静态块是在类被调用到内存后开始执行的,它和创建对象或main方法都没有关系。

如果没有main方法,程序仍然编译成功,但运行错误。

 

上例中,运行结果为:static block

                    main

*/

 

非静态块(non-static block

public class NonStaticBlock1

{

       {

              System.out.println("Non static block");

       }

 

       NonStaticBlock1()

       {

              System.out.println("constructor");

       }

 

       public static void main(String[] args)

       {

              new NonStaticBlock1();

              System.out.println("main");

       }

}

 

/**

静态块一般用于初始化类中的静态成员,而非静态块一般用于初始化类中的非静态成员。

另外,非静态块是在创建对象时自动执行的代码。

 

上例中,运行结果为:Non static block

                    constructor

                    main

                   

*/

【上篇】
【下篇】

抱歉!评论已关闭.