web-dev-qa-db-ja.com

main(String args [])とmain(String [] args)に違いはありますか?

次の間に違いはありますか?

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

そして

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

私はそうは思いませんが、疑問に思っています。

41

意味的には、それらは同一です。ただし、配列を宣言するときは、後者の構文(String[] args)を使用することをお勧めします。前者の構文は、主にC構文との互換性のためにあります。

String[]は全体として、Javaのオブジェクトのタイプであるため、分割しない方が一貫性があり明確です。

同様の質問 は、メソッド引数リストの後の[]に対応します。

36
Mehrdad Afshari

違いはありませんが、型の後に角括弧を入れます(String[])は、Javaでより一般的な方法です。

5
ColinD

両方ともまったく同じです。 Javaで使用される構文については、Java Language Specification(JLS)を参照してください。

String [] argsまたはString args []は、サイズと名前の引数なしで配列を作成します(メモリ内の場所を確保します)。

Let us Consider:

String [] x;

putting the [] after the name. Why? because it avoids subtle problems like this:-

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

いいえ

彼らは2つのスタイルの執筆です

4
Jigar Joshi

メソッドのシグネチャは同じなので、違いはありません。

パブリックメソッドであり、何も返しません。メソッド名は「main」で、String配列を受け取ります。

1
camickr

両方ともString型の配列を作成するために使用されますが、2番目の配列がより一般的です。これにより、複数のString配列を同時に作成できるためです。例えば、String[] a,b;ここでは、2つの文字列配列aとbを同時に作成しました。

しかしながら

String a[],b;文字列配列「a」と文字列変数(配列ではない)bを作成します。

これが明らかになることを願っています。

0
parul popli

いや。両者に違いはありません。

見る Declaring a Variable to Refer to an Arrayセクションの このドキュメント 。そのドキュメントから

float anArrayOfFloats []; //このフォームは推奨されません

そのため、2番目のスタイルを使用します。

0
Bala R

違いがあります。たとえば、int [] arr; -ここでarrは整数配列への参照ですが、int arr []の場合。 -arrはプリミティブなint型の配列です

0
ankit

これらの違いは、静的構文を使用してあるクラスから別のクラスにメインメソッドを手動で呼び出そうとすると、「string [] s」を使用することです。その時点で、mainメソッドの引数として文字列型の配列を渡す必要があります。 「String ... s」を使用している場合、引数として文字列配列を渡す必要はありません。それは実行され、引数として配列を渡すかどうかは関係ありません(明示的に渡さない場合、それ自体で渡されます)... したがって、証明された////// ///

0
user2133237