Es gibt einen kleinen Unterschied, wenn Sie mehr als eine Variable in derselben Deklaration deklarieren:
%Vor% Beachten Sie, dass dies ein schlechter Codierungsstil ist, obwohl der Compiler Ihren Fehler mit ziemlicher Sicherheit abfangen wird, wenn Sie versuchen, d
zu verwenden.
Es gibt keinen Unterschied.
Ich bevorzuge das Format type[] name
bei is ist klar, dass die Variable ein Array ist (weniger herumschauen, um herauszufinden, was es ist).
BEARBEITEN:
Oh, warte, es gibt einen Unterschied (ich habe vergessen, weil ich nie mehr als eine Variable gleichzeitig deklariere):
%Vor%Nein, das sind die gleichen. Jedoch
%Vor%entspricht:
%Vor%Entnommen aus der Java-Spezifikation . Das bedeutet, dass
%Vor%sind anders. Ich würde keine dieser vielen Deklarationen empfehlen. Am einfachsten zu lesen wäre (wahrscheinlich):
%Vor%Aus Abschnitt 10.2 der Java-Sprachspezifikation :
Das [] kann als Teil des Typs am Anfang der Deklaration oder als Teil des Deklarators für eine bestimmte Variable oder beides erscheinen, wie in diesem Beispiel:
%Vor%Diese Deklaration entspricht:
%Vor%
Persönlich fast all Der Java-Code, den ich jemals gesehen habe, verwendet die erste Form, was mehr Sinn macht, wenn man alle Typinformationen über die Variable an einem Ort behält. Ich wünschte, die zweite Form wäre nicht erlaubt, um ehrlich zu sein ... aber so ist das Leben ...
Glücklicherweise glaube ich nicht, dass ich jemals diesen (gültigen) Code gesehen habe:
%Vor%Die beiden Befehle sind dasselbe.
Sie können die Syntax verwenden, um mehrere Objekte zu deklarieren:
%Vor%siehe: Ссылка
Kein Unterschied.
Zitat aus Sun :
Der
[]
kann als Teil des Typs am Anfang der Deklaration oder als Teil des Deklarators für eine bestimmte Variable oder beides erscheinen, wie in diesem Beispiel:byte[] rowvector, colvector, matrix[];
Diese Erklärung entspricht:
byte rowvector[], colvector[], matrix[][];
Es gibt keinen wirklichen Unterschied; jedoch
%Vor%ist bevorzugt, da es eindeutig anzeigt, dass der Typ ein Array ist.
Es gibt keinen Unterschied zwischen den beiden; Beide deklarieren ein Array von int
s. Das erstere wird jedoch bevorzugt, da es die Typinformation an einem Ort hält. Letzteres wird nur wirklich unterstützt, wenn C / C ++ Programmierer nach Java umziehen.
Beide sind gleichermaßen gültig. Das Formular int puzzle[]
wird jedoch nicht empfohlen, das int[] puzzle
wird gemäß den Kodierungskonventionen bevorzugt . Siehe auch das offizielle Tutorial Java-Arrays :
Ebenso können Arrays anderer Typen deklariert werden:
%Vor%Sie können die eckigen Klammern auch hinter dem Namen des Arrays platzieren:
%Vor%Konvention jedoch entmutigt diese Form; Die Klammern identifizieren den Array-Typ und sollten mit der Typbezeichnung erscheinen.
Beachten Sie den letzten Absatz.
Ich empfehle, die offiziellen Sun / Oracle-Tutorials zu lesen und nicht die von Drittanbietern. Sie würden sonst Gefahr laufen, schlechte Praktiken zu lernen.
Es ist eine alternative Form, die von C
übernommen wurde, auf der Java basiert.
Als Kuriosität gibt es drei Möglichkeiten, eine gültige main
-Methode in Java zu definieren:
public static void main(String[] args)
public static void main(String args[])
public static void main(String... args)
Es gibt keinen Unterschied, aber Sun empfiehlt, es neben den Typ zu legen, wie hier beschrieben
Die Java-Sprachspezifikation lautet:
%Vor%Daraus ergibt sich genau der gleiche Bytecode.
Sie sind gleich, aber es gibt einen wichtigen Unterschied zwischen diesen Aussagen:
%Vor%in 1. regulär ist nur ein int, im Gegensatz zu 2. wo sowohl reguläre als auch array Arrays von int sind.
Die zweite Aussage, die Sie haben, wird daher bevorzugt, da es klarer ist. Die erste Form wird auch gemäß diesem Tutorial zu Oracle abgeraten.
Sie sind völlig gleichwertig. int [] array
ist der bevorzugte Stil. int array[]
wird nur als äquivalenter, C-kompatibler Stil bereitgestellt.
Beide haben dieselbe Bedeutung. Die Existenz dieser Varianten erlaubt dies jedoch auch:
%Vor%ist das gleiche wie:
%Vor%Allerdings ist das ein schrecklicher Programmierstil und sollte nie gemacht werden.
Ja, genau das gleiche. Persönlich bevorzuge ich
%Vor%weil es für jeden, der Ihren Code liest, sofort offensichtlich wird, dass Ganzzahlen ein Array von Ints sind, im Gegensatz zu
%Vor%was es nicht so offensichtlich macht, besonders wenn Sie mehrere Deklarationen in einer Zeile haben. Aber wieder sind sie gleichwertig, also kommt es auf persönliche Vorlieben an.
Lesen Sie diese Seite auf Arrays in Java , um mehr zu erfahren Tiefenbeispiele.
Wie bereits erwähnt, gibt es keinen großen Unterschied (wenn Sie nur eine Variable pro Zeile deklarieren).
Beachten Sie, dass SonarQube Ihren zweiten Fall als minderwertigen Code-Geruch behandelt:
Array-Bezeichner "[]" sollte auf dem Typ sein, nicht auf der Variablen (Tintenfisch: S1197)
Array-Bezeichner sollten immer auf dem Typ für besseren Code liegen Lesbarkeit. Ansonsten müssen Entwickler sowohl auf den Typ als auch auf den Variablenname um zu wissen, ob eine Variable ein Array ist oder nicht.
Beispiel für nicht konformen Code
%Vor%Compliant Lösung
%Vor%
Während die int integers[]
-Lösung in der C-Sprache verwurzelt ist (und daher als "normaler" Ansatz betrachtet werden kann), finden viele Leute int[] integers
logischer, da es nicht erlaubt, Variablen verschiedener Typen (dh ein int und ein Array) in einer Deklaration (im Gegensatz zur Deklaration im C-Stil).
Wenn Sie eine einzelne Array-Referenz deklarieren, gibt es keinen großen Unterschied zwischen ihnen. also sind die folgenden zwei Deklarationen gleich.
%Vor%Wenn wir mehrere Array-Referenzen deklarieren, können wir Unterschiede zwischen ihnen finden. Die folgenden zwei Aussagen bedeuten dasselbe. In der Tat ist es Sache des Programmierers, welchem man folgt. aber die Standard-Java-Notation wird empfohlen.
%Vor%