definiert ein primitives int.
%Vor%definiert ein Array mit Platz für 1 int.
Sie sind zwei sehr verschiedene Dinge. Das Primitiv hat keine Methoden / Eigenschaften, aber ein Array hat Eigenschaften (Länge) und Methoden (speziell seine Klonmethode und alle Methoden von Object).
Arrays sind ein bisschen wie ein seltsames Biest. Sie sind in der JLS definiert.
In der Praxis wäre es sinnvoll, dies zu tun, wenn Sie mit einer API interagieren müssen, die ein Array verwendet und mit den Ergebnissen arbeitet. Es ist durchaus zulässig, einen Verweis auf ein Array mit 0, 1 oder n Eigenschaften zu übergeben. Es gibt wahrscheinlich andere gültige Gründe, ein Array mit 1 Element zu definieren.
Ich kann mir keine Anwendungsfälle vorstellen, in denen Sie ein Array mit einem Element definieren möchten, nur um das Array zu umgehen und das Element zu erhalten.
Ein Unterschied besteht darin, dass Sie eine Methode schreiben können, die ihr int-Argument ändert, indem Sie arg[0]
ändern. Dieser Trick wird in einigen Codes, die ich gesehen habe, ziemlich oft verwendet. So können Sie beispielsweise einen boolean
Erfolg oder Misserfolg angeben und einen int
Wert, der einem anderen Zweck dient. Ohne diesen Trick müssten Sie ein Objekt zurückgeben, das die beiden Werte enthält.
Ein Array der Größe Eins ist nicht dasselbe wie eine einzelne ganze Zahl.
Selbst wenn sie dieselben Informationen enthalten, sind sie unterschiedliche Typen, so dass Sie sie in verschiedenen Kontexten verwenden können.
Wenn Sie zum Beispiel eine Funktion haben, die eine Funktion für alle Elemente eines Arrays ausführt, Sie aber nur einen Wert berechnen wollen, sollten Sie ein int [1] übergeben, weil die Funktion ein Array erwartet und will wissen, wie viele Werte es verarbeiten soll.
definiert eine Variable, die ein int enthalten kann
%Vor%definiert eine Variable, die ein Array von int
enthalten kann %Vor% tut das oben, initialisiert es aber auch, indem es tatsächlich ein Array erstellt (von der Größe 1 - es kann 1 int enthalten) und definiert die Variable a
, um dieses Array zu halten, definiert aber nicht, was sich im Array befindet. p>
%Vor%
macht das oben, definiert aber auch, was sich im Array befindet: das int 1.
Ich nehme an, dass es eine ähnliche Sache macht, in der der Raum für 1 int reserviert ist, aber das Array auch ein Array definiert. Ich nehme an, man könnte sagen, dass diese ähnlich sind:
%Vor%Es wird verwendet, wenn Sie einen primitiven Datentyp als Referenz übergeben müssen.
Siehe das .
Alle Arrays in Java sind Objekte. Bei der Deklaration: int x = 5;
deklarieren Sie einen primitiven Typ.
Wenn Sie int[] x = new int[];
deklarieren, erstellen Sie ein Objekt mit dem Typ int[]
.
So int[]
ist eigentlich eine Klasse.