java的main函数为什么是public static void main(String[] args)
這個(gè)問題困擾我好久了,今天就一查究竟,畢竟我好奇心比較重
1. why “public”
? ?因?yàn)閖ava程序是通過jvm虛擬機(jī)調(diào)用的,所以main()函數(shù)要是想被調(diào)用,必須是public
2.why “static”
? ?在java中,沒有static的變量或函數(shù),如果想被調(diào)用的話,是要先新建一個(gè)對(duì)象才可以。而main函數(shù)作為程序的入口,需要在其它函數(shù)實(shí)例化之前就啟動(dòng),這也就是為什么要加一個(gè)static。main函數(shù)好比一個(gè)門,要探索其它函數(shù)要先從門進(jìn)入程序。static提供了這樣一個(gè)特性,無需建立對(duì)象,就可以啟動(dòng)。
3.why “(String[] args)”?
? ?(1)先來說說,為什么這個(gè)字符串?dāng)?shù)組要叫“args”,其實(shí)這個(gè)是約定俗成的一種命名,不叫"args"叫其它的也是ok的,不信可以自行測(cè)試。
? ?(2)再來看看為什么要是一個(gè)String的數(shù)組,java在運(yùn)行的時(shí)候是這樣的(如下),有點(diǎn)像命令行,a1,a2,a3就是這個(gè)String數(shù)組里的命令。
java main a1 a2 a3下面我們?cè)谏钊氲絡(luò)vm驅(qū)動(dòng)里面看看,main()函數(shù)是怎樣被啟動(dòng)的:
mainID = (*env)->GetStaticMethodID(env, mainClass, "main", "([Ljava/lang/String;)V");這是jvm啟動(dòng)時(shí)的代碼,直接去找static的,參數(shù)為String數(shù)組的main方法。
作者微信公眾號(hào):凡人機(jī)器學(xué)習(xí)
長期分享機(jī)器學(xué)習(xí)實(shí)戰(zhàn)相關(guān)信息,感謝關(guān)注!
/********************************
* 本文來自博客 ?“李博Garvin“
* 轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/buptgshengod
******************************************/
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的java的main函数为什么是public static void main(String[] args)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac下dashboard小控件开发实例
- 下一篇: 【码农本色】用数据解读我的2014