1. 程式人生 > >Java基礎——對main方法的理解

Java基礎——對main方法的理解

1. 對main方法的理解

public static void main(String[ ] args) 為Java程式的入口。

public: 許可權修飾符,表明任何類或物件都可以訪問。

static:“靜態”,表明main方法是一個靜態方法,方法中的程式碼儲存在靜態儲存區,只要類被載入後,就可以使用該方法而不需要通過例項化物件來訪問,可以直接通過類名.main()直接訪問。

void: 返回值為空。

main: Java識別的特殊方法名,是程式的入口方法。

String[] args:字串陣列,引數args為開發人員在命令列狀態下輸入引數。

JVM執行時按照上述方法簽名來查詢方法的入口。必須有public 和 static修飾,返回值為空,方法的引數為字串陣列,方法名為main。

若能找到,就執行。找不到,則報錯。

2.main方法是否還有其它可用的定義格式?

(1)public和static沒有先後順序關係,因此以下定義也合理。

static public void main(String[ ] args)

(2)還可以把main方法定義為final

public static final void main(String[ ] args)

(3)還可以用synchronized修飾main方法

public static synchronized void main(String[ ] args)

由於main()方法為程式的入口方法,不能用abstract關鍵字修飾

 

3. 同一個.java檔案中是否可以有多個main()方法?

雖然每個類中都可以定義main()方法,但只有與檔名相同用public修飾的類中的main()方法才能作為整個程式的入口方法。

 

4.main()方法一定是程式執行時第一個被執行的模組嗎?

答案:否

靜態塊在類被載入時就會被呼叫,而main()方法是類被載入後程序執行的入口,只不過mian()方法是靜態方法,不用通過例項化物件來訪問。

示例:

public class Test{
	static
	{
		System.out.println("Hello World1");
	}
	
	public static void main(String[] args)
	{
		System.out.println("Hello World2");
	}	
}

輸出結果:

Hello World1

Hello World2