2015-10-19 60 views
-3
public class Hello { 
    public static void main(String args[]) { 
     System.out.println(" This is awesome "+args); 
    } 
} 

在上面的代碼中,爲什麼我們必須在main()中提及String args[],爲什麼我們在打印時得到"[Ljava.lang.String;@174e5edb"作爲輸出?爲什麼在主要方法中必須提及「String args []」,如果我們輸出args [],爲什麼我們要把它作爲輸出:「[Ljava.lang.String; @ 174e5edb」?

+0

你的問題的另一半(不是重複問題的一部分)已經在這裏提出:[*爲什麼Java中的main方法總是需要參數?](http://stackoverflow.com/q/10783190/2991525) – fabian

回答

1

爲什麼它是強制性的提到「字符串ARGS []」在main()

那是因爲你可以在啓動時傳遞參數給應用程序,然後是陣列的內容。作爲替代,您可以使用可變參數,即String... args

我們爲什麼「[Ljava.lang.String; @ 174e5edb」作爲輸出,當我們打印

這就是toString()方法數組實現的(實際上是Object)的方式。改爲使用Arrays.toString(args)

0

main方法的簽名被簡單地定義爲它的方式。 String[]用於傳遞參數給程序。 "[Ljava.lang.String;@174e5edb"是值的類型,它是String[]"[Ljava.lang.String")。隨後在堆中的位置("@174...")。這是在java中表示對象的默認方式。如果要打印陣列的內容,可以使用System.out.println(Arrays.toString(args));

相關問題