它是作為JAVA中的主函數,所有java程序的運行起點就是這個方法,除了args這個名字可以不一樣外,其他必須是這樣。
主函數的一般寫法如下:
public static void main(String[] args){…}
1)public
public是權限修飾符,表明任何類或對象都可以訪問這個方法。
2)static
static表明main()方法是一個靜態方法,即方法中的代碼是存儲在靜態存儲區的,只要類被加載后,就可以使用該方法而不需要通過實例化對象來訪問,可以直接通過類名.main()直接訪問,JVM在啟動時就是按照上述方法的簽名(必須有public與static修飾,返回值為void,且方法的參數為字符中數組)來查找方法的入口地址,若能找到,就執行;找不到,則會報錯。
3)void
void表明方法沒有返回值。
4)main
main是JVM識別的特殊方法名,是程序的入口方法。
5)String[] args
字符串數組參數args為幵發人員在命令行狀態下與程序交互提供了一種手段。
引申
一、main方法是否還可以有其它的定義形式?
1.由於static與public沒有先后關系,所以下面的寫法也是可以的:
static public void main(String[] args)
2.也可以把main方法定義為final:
public static final void main(String[] args)
3.也可以使用synchronized關鍵字來修飾main方法:
static public synchronized void main(String[] args)
不管哪種定義方式,都必須保證方法名是main,返回值是void,權限是public,必須是static類型的。同時由於main方法是程序的入口方法,所以不能使用abstract修飾。
二、同一個.java文件是否可以有多個main方法?
雖然每個類中都可以定義main方法,但是只有與文件名相同的並且用public修飾的class的main方法才能作為整個程序的入口方法。
如,創建一個Test.java文件,其中內容如下:
public class Test {
public static void main(String[] args) {
System.out.println("public class Test");
}
}
class Show {
public static void main(String[] args) {
System.out.println("class Show");
}
}
運行結果是:
public class Test