public static void main(string[] args)解釋
阿新 • • 發佈:2017-08-13
mac env 必須 ase pla 分享 知識庫 div main函數
這個問題困擾我好久了,今天就一查究竟,畢竟我好奇心比較重
1. why “public”
因為Java程序是通過jvm虛擬機調用的,所以main()函數要是想被調用,必須是public
2.why “static”
在java中,沒有static的變量或函數,如果想被調用的話,是要先新建一個對象才可以。而main函數作為程序的入口,需要在其它函數實例化之前就啟動,這也就是為什麽要加一個static。main函數好比一個門,要探索其它函數要先從門進入程序。static提供了這樣一個特性,無需建立對象,就可以啟動。
3.why “(String[] args)”?
(1)先來說說,為什麽這個字符串數組要叫“args”,其實這個是約定俗成的一種命名,不叫"args"叫其它的也是ok的,不信可以自行測試。
(2)再來看看為什麽要是一個String的數組,java在運行的時候是這樣的(如下),有點像命令行,a1,a2,a3就是這個String數組裏的命令。
java main a1 a2 a3
下面我們在深入到jvm驅動裏面看看,main()函數是怎樣被啟動的:
mainID = (*env)->GetStaticMethodID(env, mainClass, "main", "([Ljava/lang/String;)V");
這是jvm啟動時的代碼,直接去找static的,參數為String數組的main方法。
作者微信公眾號:凡人機器學習
長期分享機器學習實戰相關信息,感謝關註!
public static void main(string[] args)解釋