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

巧了我就是萌 提交于 2019-11-27 04:17:19

问题


Is there a difference between:

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

and

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

I don't believe so, but I am wondering.


回答1:


Semantically, they are identical. However, I'd recommend using the latter syntax (String[] args) when declaring arrays. The former syntax is there mainly for compatibility with C syntax.

Since String[], as a whole, is the type of the object in Java, it's more consistent and clear not to split it up.

A similar question addresses the [] after method argument list.




回答2:


There's no difference, but putting the brackets after the type (String[]) is the more common practice in Java.




回答3:


No

They are just two style of writting




回答4:


Both of them are absolutely the same. Please refer to Java Language Specification (JLS) to see the syntax used in java.

String[] args or String args[] will create an array (reserves a place in memory)with no size and name 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



回答5:


The method signature is the same so there is no difference.

Its a public method, it returns nothing, the method name is "main" and the it takes a String array.




回答6:


Although both are used to create array of String type but second one is more popular, because with that, you can create multiple String arrays simultaneously... E.g String[] a,b; Here you have created two String Arrays a and b simultaneously.

However

String a[],b; will create String array "a" and String variable(not array) b.

Hope this clarifies.




回答7:


Nope. There is no difference b/w the two.

See Declaring a Variable to Refer to an Array section in this doc. From that doc

float anArrayOfFloats[]; // this form is discouraged

so just use the second style.




回答8:


The difference between these is that when we try to call the main method manually from one class to another by using static syntax , we use "string[] s ". At that point we have to pass an array of string type as argument in main method. When we are using "String... s" then there is no need to pass any string array as an argument. It will run and it doesn't matter if you pass the array as an argument or not (if you don't explicitly pass it, it is passed by itself) ... hence proved/////////




回答9:


there is a difference: For example if you write int[] arr; - here arr is the reference to the integer array whereas in case of int arr[]; - arr is a primitive int type array



来源:https://stackoverflow.com/questions/5997235/is-there-a-difference-between-mainstring-args-and-mainstring-args

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!