String args[]

對於public static void main(String args[])你知幾何?java

Java中main()方法以及命令行參數的若干注意數組

 

main方法的完整定義語法:public static void main(String[] args){}瀏覽器

命令行格式:java [命令參數] 文件名 [args[0](用戶參數) args[1] ...    好比 java - cs AClass a b c<enter>ide


1. 關於main()方法中的修飾符public
    java虛擬機規範並無要求main必定是public的,因此public能夠省略,它只是爲了main()方法能夠從任意一個java運行環境中調用。不過沒有public 雖然編譯無錯誤,可是虛擬機沒法啓動應用程序。操作系統


2. 關於main()方法中的關鍵字static
    靜態方法不能訪問實例字段。但可訪問自身類中的靜態字段。
      
    main方法是且必須是一個靜態方法,因此static 必須寫。爲了避免須要構造類實例。若是沒有static,運行時出錯。命令行


3 . main()方法的返回類型和返回值
    main(String[] arg)若是不寫void會有編譯錯誤
    若是不寫static和[]會有運行錯誤code

    main()方法並不向操做系統返回「退出代碼」。java中,若是main方法正常退出,Java程序的退出代碼爲0,表示成功地實行完畢程序。若要用不一樣的退出代碼終止程序,則使用System.exit方法。
    
    由於main()方法是能夠重載的,因此返回類型能夠void ,int ,boolean... 但若是從應用程序的入口main()方法的角度看,則只能用void返回。虛擬機


4. main()方法及命令行參數相聯繫的若干注意it

    當缺乏String[]args時,雖然編譯能夠經過,可是運行時沒法獲取有效的main方法,運行時候會報錯。其中方法參數名字args能夠改變。io

    要知道知道String數組長度,能夠直接用args.length便可。

    當沒有用戶參數的時候,若是進行args[0]等的訪問,會拋出一個數組越界異常。

    以下操做,因爲main()方法的參數類型正確,因此編譯能夠經過,但運行時會出錯。

public class Test
{
public static void main(String argv)
{
   System.out.println("hello cruel world");
}
}

   若是超過邊界訪問args[],編譯正常,運行出錯。
如:
public class Test{ 
   public static void main(String[] args){ 
   String foo=args[1]; 
   String bar=args[2]; 
   String baz=args[3]; 
    } 
    } 
   java Test Red Green Blue 
what is the value of baz? 
A. baz has value of "" 
B. baz has value of null 
C. baz has value of "Red" 
D. baz has value of "Blue" 
E. baz has value of "Green" 
F. the code does not compile 
G. the program throw an exception 
Answer:G 

5. main()方法只做爲Java應用程序的入口。Applet程序不須要main()方法,通常由瀏覽器不一樣方式啓動,其入口程序通常爲init()方法。

6. main可做爲普通方法名。 如: public class Droitwich { class one { private class two {    public void main()   //注意這裏的main方法    {     System.out.println("two");    } } } }  顯示:編譯正常

相關文章
相關標籤/搜索