JAVA 中的实例初始化块

      我们都知道在java中有静态初始化块,也就是static{} ,他们会在类被加载时候调用。如果类中含有实例初始化块,也就是{}块,它会在什么时候被调用呢。

我们来看个例子:

public class InstanceInit {
      public InstanceInit() {
	System.out.println("InstanceInit created");
      }
      static{
	System.out.println("InstanceInit static Initialzer");
      }
      {
	System.out.println("InstanceInit Initialzer");
      }
      public static void main(String[] args) {
	new SubInstanceInit();
      }

}

class SubInstanceInit extends InstanceInit {
         public SubInstanceInit() {
                super();
	System.out.println("SubInstanceInit created");
          }

          {
	System.out.println("SubInstanceInit Initializer");
          }
          static {
	System.out.println("SubInstanceInit static Initializer");
          }
}

 运行结果是什么呢?

InstanceInit static Initialzer

SubInstanceInit static Initializer

InstanceInit Initialzer

InstanceInit created

SubInstanceInit Initializer

SubInstanceInit created

从结果中可以看出实例初始化块在super()之后,且在构造器其他代码之前被调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值