初始化塊和靜態初始化塊的區別


最近被初始化快和靜態初始化快整懵了,現整理如下:

** 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/初始化塊和靜態初始化塊的區別/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM