初始化块和静态初始化块的区别

最近被初始化快和静态初始化快整懵了,现整理如下:

** ps: 大学时的ppt课件都被我翻出来了 (*) **
**       不看前面内容,我写在本文最后的那道测试题绝对让大部分人懵逼 <( ̄︶ ̄)>**

图片1-初始化快
图片2-静态初始化快
图片3-执行顺序

测试代码

1、static初始化块

static初始化块是在构造函数之前执行的,而且只执行一次,即类首次加载时。

测试代码:
图片4

2、初始化块<( ̄︶ ̄)>

测试代码:
图片5

原代码:

package dem;

public class A extends B {
	public A() {
		System.out.println("A构造方法");
	}

	static {
		System.out.println("A静态初始化块");
	}

	{
		System.out.println("A初始化块");
	}

	public static void main(String[] args) {
		new A();
		System.out.println("--------");
		new A();
	}
}

class B {
	public B() {
		System.out.println("B构造方法");
	}

	static {
		System.out.println("B静态初始化块");
	}

	{
		System.out.println("B初始化块");
	}
}


原文地址:
http://wangxin123.com/2016/06/06/初始化块和静态初始化块的区别/

posted @ 2017-02-14 15:15  星空str  阅读(2718)  评论(0编辑  收藏  举报