1. 程式人生 > >java之普通程式碼塊、構造塊、靜態塊

java之普通程式碼塊、構造塊、靜態塊

程式碼塊

定義:{}中定義的一段程式碼


根據程式碼塊出現的位置以及關鍵字不同,分為下面四類程式碼塊

普通程式碼塊

定義在方法中的程式碼塊,解決方法中變數重新命名的問題,瞭解即可,沒什麼意義。

public class 程式碼塊 {
	public static void main(String[] args) {
		{
			int n = 5;
		}
		int n = 0;
		System.out.println(n);
	}
}

構造塊

定義在類中的程式碼塊(不參與任何修飾),當有物件產生時,構造塊優先於構造方法執行,產生幾個物件,就呼叫幾次構造塊。作用是在構造方法執行之前進行一些初始化操作。

class A {
	public A() {
		System.out.println("這裡是建構函式");
	}
	{
		System.out.println("這裡是構造塊");
	}
}

靜態程式碼塊

在類中使用static定義的程式碼塊。

非主類的靜態程式碼塊:靜態程式碼塊在類載入時被呼叫,優先於構造快,不管產生多少例項化物件,只會被呼叫一次。

主類中的靜態程式碼塊:主類中的靜態程式碼塊優先於主方法執行。

public class 程式碼塊 {
	static {
		System.out.println("這裡是主類靜態塊");
	}
}

class A {
	public A() {
		System.out.println("這裡是建構函式");
	}
	static {
		System.out.println("這裡是非主類靜態塊");
	}
}

同步程式碼塊(多執行緒同步):

之後更