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

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

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

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

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

 

 

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

                   

*/

//静态块(static block):如下所示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值