一個例子說明java局部代碼塊、靜態代碼塊、構造代碼塊區別

package com.springapp.mvc.demo.classBlockDemo;

/**
 * java中普通代碼塊、構造代碼塊、靜態代碼塊
 * <p/>
 * 普通代碼塊:一般用於控制變量的生命週期。執行順序由他們聲明的順序決定。
 * 構造代碼塊:構造代碼塊在建立對象時被調用。
 * 靜態塊:用於類的初始化,每一個靜態代碼塊在類加載時運行,且只執行一次。
 * <p/>
 * 執行順序:(優先級從高到低。)靜態代碼塊>mian方法>構造代碼塊>構造方法。
 *
 * @author Leizhi 2016/6/14
 * @see
 * @since 1.0
 */
public class ClassBlock
{
	{
		System.out.println("I am construct block, i usually use for instantiating an object;");
	}

	static
	{
		System.out.println("I am static block, i usually use for instantiating an Class;");
	}

	public static void main(String[] args)
	{
		System.out.println("I am the main methods...., i run after static block.");
		new ClassBlock();
		{
			System.out.println("I am part block, i usually use for control variables lifecycle;");
			int x = 10;
			System.out.println(x);
		}
		//System.out.println(x); error,訪問不到x變量,僅存在於局部(普通)代碼塊中
	}
}

運行截圖java

相關文章
相關標籤/搜索