public static void main(String args[]) {}
main方法是我們學習Java語言學習的第一個方法,也是每個java使用者最熟悉的方法,每個Java應用程式都必須有且僅有一個main方法。
在eclipse裡可以使用輸入main,在按住Alt+/的方式快速建立main方法。可以說main方法是最簡單的方法,因為main方法幾乎是固定不變得,除了String[] args可以寫成String args[],以及args的名稱可以改變外,其它所有均不改變。
main方法也是特殊的,因為它的類型必須是public static void,甚至名字都必須是main,還有括号内的參數String[] args,很多初學者都不知道它的作用。正是這種簡單而特殊的性質,往往容易讓人對它産生忽視以及疑惑。下面就詳細談談java main方法:
根據Java語言規範,main方法必須聲明為public。但是在JavaSE1.4以前的版本中,當main方法不是public時,有些版本的Java解釋器也可以執行Java應用程式。詳見http://bugs.sun.com/bugdatabase/index.jsp,bug号碼4252539。當時SUN公司的工程師解釋說,Java虛拟機規範并沒有要求main方法一定是public。以上隻是寫出來,豐富一下興趣。如果有人說Java main方法從來隻能用public,那樣說實際上還是錯的,因為以前出過這麼個BUG。但是在1.4版本之後main方法已經被強制成了public,是以現在我們看到的main方法隻能是public。
public是一種通路權限修飾符,public中文翻譯共有,正如它的實際意思一樣,在Java裡面所有被public修飾的方法,類等都可以在任意其他地方調用。main方法之是以是public,是因為一個Java程式在運作時首先建立一個JVM執行個體,程式要運作需要調用main方法,JVM從外部調用main方法這就需要通路權限修飾符必須給出外部通路的權限,是以隻能用public。
static的定義是為了JVM在調用main方法時不用執行個體化對象,隻需要在初始時加載main方法所在類,然後直接通過類名.main來調用main方法。
void表示main方法沒有傳回值,沒有傳回值的原因是因為Java不需要main方法向作業系統傳回退出資訊。如果main方法正常退出,那麼Java應用層序的退出代碼為0,表示成功的運作了程式。
main的名稱不能變是為了JVM能夠識别程式運作的起點,main方法可以被重載,重載的main方法不會被執行。main方法作為程式初始線程的起點,任何其他線程均由該線程啟動。JVM内部有兩種線程,非守護線程和守護線程,main方法屬于非守護線程,守護線程通常由JVM自己使用,Java程式也可以表明自己的線程是守護線程。當程式中所有的非守護線程終止時,JVM退出。也可以用Runtime類或者System.exit()來退出。
String[] args,是main方法中唯一可以改變的地方!args是arguments的縮寫,隻是一個變量預設名,習慣性寫作它,但是也可以改變的,隻要符合命名規則随便你寫成什麼。在使用內建開發工具的今天,String[] args更像是一種擺設了,很多初學者都不知道它的作用,其實它是程式運作傳入的一個參數組。一個簡單的例子:
用文本工具如下代碼并将其儲存為Test.java
public class Test{
public static void main(String[] args){
System.out.println("擷取數組args[]的資料");
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}
以管理者身份運作CMD,因為我的Test.java是直接儲存在F盤中的,輸入f:跳轉到目錄,輸入Javac Test.java将其編譯為Test.class檔案,然後輸入java Test 5 4 3 2 f xx,擷取輸出資料
Java中所有方法的代碼都是從“{”開始,以“}”結束。