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