淺析 public static void main(String[] args)


      最初接觸Java程序的時候,老師就教導我們要從下面這句開始學起,據說是約定俗成的,所以直到今天,還是只知道java程序應該這么寫,具體為什么這么寫,鄙人慚愧。

1 public class ClassName{
2     public static void main(String[] args){
3         System.out.println("Hello Java");
4     }
5 }

  今天既然自己都這么慚愧了,那么就該是時候弄明白為什么java的主函數要按照這個格式來寫,從以下幾點來說明吧。

 為什么使用public static修飾main()

  Java中,main()方法是java應用程序的入口方法。java虛擬機通過main方法找到需要啟動的運行程序,並且檢查main函數所在類是否被java虛擬機裝載。如果沒有裝載,那么就裝載該類,並且裝載所有相關的其他類。因此程序在運行的時候,第一個執行的方法(注意是方法,而不是其他的,例如代碼塊)就是main()方法。通常情況下, 如果要運行一個類的方法,必須首先實例化出來這個類的一個對象,然后通過"對象名.方法名()"的方式來運行方法,但是因為main是程序的入口,這時候還沒有實例化對象,因此將main方法聲明為static的,這樣這個方法就可以直接通過“類名.方法名()”的方式來調用。

 為什么使用void修飾main()

  對於java中的main(),jvm有限制,不能有返回值,因此返回值類型為void。

 關於參數String[] args的說明

 

      main方法中還有一個輸入參數,類型為String[],這個也是java的規范,main()方法中必須有一個入參,類細必須String[],至於字符串數組的名字,這個是可以自己設定的,根據習慣,這個字符串數組的名字一般和sun java規范范例中mian參數名保持一致,取名為args。

 

 main()方法可以 throws Exception

 

      看到網上有說main()方法不能拋出異常,感覺有點疑惑,就親自試驗了一把,代碼如下,運行正常。

 

 

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 }

 

總結

通過對main()的修飾符合參數進行說明,總算對其所有了解,不至於一點都不懂所以然。不過還有點困惑,留在此處,希望大牛指教。問題是:代碼中的static代碼塊為什么先於main()函數被執行?

public class ArgumentsOfMain {
    static { 
        System.out.println("Hello Wordld!"); 
    }
    public static void main(String[] args){
        System.out.println(args.length);
    }
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM