1. 程式人生 > >public static void main(string[] args)解釋

public static void main(string[] args)解釋

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)解釋