浅析 public static void main(String[] args)
? ? ? 最初接觸Java程序的時(shí)候,老師就教導(dǎo)我們要從下面這句開始學(xué)起,據(jù)說是約定俗成的,所以直到今天,還是只知道java程序應(yīng)該這么寫,具體為什么這么寫,鄙人慚愧。
1 public class ClassName{ 2 public static void main(String[] args){ 3 System.out.println("Hello Java"); 4 } 5 }今天既然自己都這么慚愧了,那么就該是時(shí)候弄明白為什么java的主函數(shù)要按照這個(gè)格式來寫,從以下幾點(diǎn)來說明吧。
為什么使用public static修飾main()
Java中,main()方法是java應(yīng)用程序的入口方法。java虛擬機(jī)通過main方法找到需要啟動(dòng)的運(yùn)行程序,并且檢查main函數(shù)所在類是否被java虛擬機(jī)裝載。如果沒有裝載,那么就裝載該類,并且裝載所有相關(guān)的其他類。因此程序在運(yùn)行的時(shí)候,第一個(gè)執(zhí)行的方法(注意是方法,而不是其他的,例如代碼塊)就是main()方法。通常情況下, 如果要運(yùn)行一個(gè)類的方法,必須首先實(shí)例化出來這個(gè)類的一個(gè)對(duì)象,然后通過"對(duì)象名.方法名()"的方式來運(yùn)行方法,但是因?yàn)閙ain是程序的入口,這時(shí)候還沒有實(shí)例化對(duì)象,因此將main方法聲明為static的,這樣這個(gè)方法就可以直接通過“類名.方法名()”的方式來調(diào)用。
為什么使用void修飾main()
對(duì)于java中的main(),jvm有限制,不能有返回值,因此返回值類型為void。
關(guān)于參數(shù)String[] args的說明
?
? ? ? main方法中還有一個(gè)輸入?yún)?shù),類型為String[],這個(gè)也是java的規(guī)范,main()方法中必須有一個(gè)入?yún)?#xff0c;類細(xì)必須String[],至于字符串?dāng)?shù)組的名字,這個(gè)是可以自己設(shè)定的,根據(jù)習(xí)慣,這個(gè)字符串?dāng)?shù)組的名字一般和sun java規(guī)范范例中mian參數(shù)名保持一致,取名為args。
?
main()方法可以 throws Exception
?
? ? ? 看到網(wǎng)上有說main()方法不能拋出異常,感覺有點(diǎn)疑惑,就親自試驗(yàn)了一把,代碼如下,運(yùn)行正常。
?
?
1 public class ArgumentsOfMain { 2 public static void main(String[] args) throws Exception{ 3 System.out.println("Hello World"); 4 throw new Exception("hello world"); 5 } 6 }?
總結(jié)
通過對(duì)main()的修飾符合參數(shù)進(jìn)行說明,總算對(duì)其所有了解,不至于一點(diǎn)都不懂所以然。不過還有點(diǎn)困惑,留在此處,希望大牛指教。問題是:代碼中的static代碼塊為什么先于main()函數(shù)被執(zhí)行?
public class ArgumentsOfMain {static { System.out.println("Hello Wordld!"); }public static void main(String[] args){System.out.println(args.length);} }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/RobertC/p/3488578.html
總結(jié)
以上是生活随笔為你收集整理的浅析 public static void main(String[] args)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不带头结点链表,尾部插入法创建
- 下一篇: *[topcoder]JumpFurth