Die Antwort hängt davon ab, auf welchen Typ von Variablen Sie sich beziehen.
Für Klassenvariablen gibt es keinen Unterschied, siehe JLS - 4.12.5. Anfangswerte von Variablen :
... Jede Variable in einem Programm muss einen Wert vor ihrem Wert haben verwendet:
Für alle Referenztypen ( §4.3 ), der Standardwert ist
null
.
Das heißt, es gibt keinen Unterschied, der letztere wird implizit auf null
gesetzt.
Wenn die Variablen lokal sind, müssen sie zugewiesen werden, bevor Sie sie an eine Methode übergeben:
%Vor%Lokale Variablen müssen etwas zugewiesen werden, bevor sie verwendet werden.
%Vor% Klassenvariablen werden immer auf einen Standardwert ( null
für Objekttypen, etwa Null für Primitive) initialisiert, wenn Sie sie nicht explizit initialisieren. Lokale Variablen werden nicht implizit initialisiert.
Kein Unterschied. In beiden Fällen muss die lokale Variable immer initialisiert sein (muss einen Wert haben).
Von Java
doc
Ähnlich wie ein Objekt seinen Zustand in Feldern speichert, wird dies eine Methode sein oft seinen temporären Zustand in lokalen Variablen speichern. Die Syntax für Die Deklaration einer lokalen Variablen ähnelt der Deklaration eines Feldes (z Beispiel: int count = 0;). Es gibt kein spezielles Schlüsselwort, das a bezeichnet Variable als lokal; Diese Bestimmung kommt ausschließlich aus dem Ort in dem die Variable deklariert ist - was zwischen der Eröffnung und der geschweifte Klammern einer Methode schließen Daher sind lokale Variablen nur sichtbar zu den Methoden, in denen sie erklärt werden; Sie sind nicht zugänglich vom Rest der Klasse.
Keine Unterschiede erwarten Sie für eine Sache, wenn Sie es nicht initialisieren und später versuchen, diese Variable zu verwenden (ohne die Referenz zu ändern) bedeutet einen Fehler bei der Kompilierung, aber wenn Sie es initialisieren und Sie es verwenden später (ohne die Referenz zu ändern) bedeutet eine NullPointerException.
Ich zeige Ihnen ein Beispiel.
Ohne Initialisierung
%Vor%Bei der Initialisierung
%Vor%Intern gibt es keinen Unterschied. Es ist auch ein strittiges Thema.
Verwenden Sie die lokale Variable nur, wenn sie wirklich benötigt wird. Lokale Variablen sind meistens in den folgenden Szenarien (ich vermisse einige wenige andere).
Als Kurzschrift oder zur Lesbarkeit
%Vor%Wenn wir die Syntax an vielen Stellen so verwenden, wird der Code unhandlich.
Für die Barrierefreiheit
%Vor%Der Aufrufer des obigen Code-Snippets trifft die Entscheidung basierend auf dem Rückgabewert. Ehrlich gesagt, sehe ich keinen anderen gültigen Anwendungsfall, um eine Variable ohne Anfangswert zu deklarieren.
Fazit (Best Practice):
Tags und Links java