簡體   English   中英

main(String args[]) 和 main(String[] args) 之間有區別嗎?

[英]Is there a difference between main(String args[]) and main(String[] args)?

是否有區別:

public void main(String args[]) { ... } 

public void main(String[] args) { ... }

我不相信,但我想知道。

在語義上,它們是相同的。 但是,我建議在聲明數組時使用后一種語法( String[] args )。 前一種語法主要是為了與 C 語法兼容。

由於String[]整體而言是 Java 中對象的類型,因此不拆分它會更加一致和清晰。

一個類似的問題解決了方法參數列表之后的[]

沒有區別,但將括號放在類型 ( String[] ) 之后是 Java 中更常見的做法。

兩者完全相同。 請參閱 Java 語言規范 (JLS) 以查看 java 中使用的語法。

String[] argsString args[]將創建一個沒有大小和名稱args的數組(在內存中保留一個位置)。

讓我們考慮一下:

String [] x;

[]放在名稱后面可以避免這樣的微妙問題:-

String x [] , y; //x[] is an array but y is a String
String [] x y ; //two arrays x[] and y[] both

雖然兩者都用於創建 String 類型的數組,但第二種更受歡迎,因為使用它,您可以同時創建多個 String 數組... 例如String[] a,b; 在這里,您同時創建了兩個字符串數組 a 和 b。

然而

String a[],b; 將創建字符串數組 "a" 和字符串變量(不是數組) b

希望這能澄清。

它們只是兩種寫作風格

方法簽名是相同的,所以沒有區別。

它是一個公共方法,它不返回任何內容,方法名稱是“main”,它采用一個 String 數組。

它們之間的區別在於,當我們嘗試使用靜態語法從一個類手動調用 main 方法到另一個類時,我們使用“string[] s”。 那時我們必須在 main 方法中傳遞一個字符串類型的數組作為參數。 當我們使用 "String... s" 時,不需要將任何字符串數組作為參數傳遞。 它將運行,如果您將數組作為參數傳遞與否無關緊要(如果您沒有明確傳遞它,它會自行傳遞)......因此證明//////////

不。 兩者沒有區別。

Declaring a Variable to Refer to an Array 本文檔中的Declaring a Variable to Refer to an Array部分。 從那個文檔

浮動 anArrayOfFloats[]; // 這種形式是不鼓勵的

所以只需使用第二種樣式。

除了這兩種風格,值得一提的是,以下也是自 Java 5 以來main()方法的有效簽名:

public static void main(String... args)

Java 語言規范

方法 main 必須聲明為 public、static 和 void。 它必須指定一個形式參數(第 8.4.1 節),其聲明的類型是字符串數組。

省略號...是 var-args 的語法,可用於將任意數量的參數傳遞給方法。 更多關於它在這里

String args[] 和 String[] args 是相同的。 從某種意義上說,他們做同樣的事情,創建一個名為 args 的字符串數組。

但是為了避免混淆並強制與您可能遇到的所有其他 Java 代碼兼容,我建議在聲明數組時使用語法 (String[] args)。

您可能會遇到的一種困惑是,當您嘗試在一行中聲明多個 String 數組時,那么String[] fruits, vegetables將與String fruits[], vegetables

前者創建了兩個字符串數組fruits蔬菜,而后者創建了一個水果字符串數組和一個蔬菜字符串變量

有區別:例如,如果你寫 int[] arr; - 這里 arr 是對整數數組的引用,而在 int arr[] 的情況下; - arr 是一個原始的 int 類型數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM