web-dev-qa-db-fra.com

Existe-t-il une différence entre main (arguments de chaîne []) et principaux (arguments de chaîne [])?

Y a-t-il une différence entre:

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

et

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

Je ne crois pas, mais je me demande.

41

Sémantiquement, ils sont identiques. Cependant, je recommanderais d'utiliser la dernière syntaxe (String[] args) lors de la déclaration de tableaux. La première syntaxe est là principalement pour la compatibilité avec la syntaxe C. 

Puisque String[], dans son ensemble, est le type de l'objet en Java, il est plus cohérent et clair de ne pas le séparer.

Une similaire question adresse la liste d'arguments de méthode [] après. 

35
Mehrdad Afshari

Il n'y a pas de différence, mais mettre les crochets après le type (String[]) est la pratique la plus courante en Java.

5
ColinD

Les deux sont absolument les mêmes. Veuillez vous reporter à la spécification du langage Java (JLS) pour connaître la syntaxe utilisée en Java.

String [] args ou String args [] créera un tableau (réservera une place en mémoire) sans argument de taille ni de nom. 

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

Non  

Ils ne sont que deux styles d'écriture

4
Jigar Joshi

La signature de la méthode est la même, il n'y a donc pas de différence.

C'est une méthode publique, elle ne renvoie rien, le nom de la méthode est "main" et il faut un tableau String.

1
camickr

Bien que les deux soient utilisés pour créer un tableau de type String, le second est plus populaire, car vous pouvez créer simultanément plusieurs tableaux de chaînes ... E.g String[] a,b;Vous avez créé simultanément deux tableaux de chaînes a et b. 

Toutefois

String a[],b; créera le tableau String "a" et la variable String (pas tableau) b .

J'espère que cela clarifie.

0
parul popli

Nan. Il n'y a pas de différence entre les deux.

Voir la section Declaring a Variable to Refer to an Array dans ce document . À partir de ce doc

float anArrayOfFloats []; // ce formulaire est découragé

alors utilisez simplement le second style.

0
Bala R

il y a une différence: Par exemple si vous écrivez int [] arr; - ici arr est la référence au tableau entier alors que dans le cas de int arr []; - arr est un tableau de type int primitif

0
ankit

La différence entre ceux-ci est que lorsque nous essayons d'appeler manuellement la méthode main d'une classe à une autre en utilisant une syntaxe statique, nous utilisons "string [] s". À ce stade, nous devons passer un tableau de type chaîne en tant qu'argument dans la méthode main. Lorsque nous utilisons "String ... s", il n'est pas nécessaire de passer un tableau de chaînes en tant qu'argument. Cela fonctionnera et peu importe si vous transmettez le tableau sous forme d'argument ou non (si vous ne le transmettez pas explicitement, il est transmis par lui-même) ... donc prouvé ///// ////

0
user2133237