Erstes BeispielDifferenz zwischen einem statischen Endfeld und ein letzten Instanz Feld bei Deklaration initialisiert, wenn
public class MyClass { final int x = 2; }
durch ein Objekt zugegriffen x ist
- final was es bedeutet, kann nach der Initialisierung niemals eingestellt werden.
- Bei der Deklaration initialisiert, was bedeutet, dass ihm später (auch im Konstruktor) kein anderer Wert zugewiesen werden kann.
- behoben (unabhängig von der Instanz), da sein Wert im Konstruktor (oder anderswo wirklich) nicht geändert werden kann.
Zweites Beispiel
public class MyOtherClass { static final int x = 3; }
x ist
- letzte das heißt, es kann nie nach der Initialisierung eingestellt werden.
- Bei der Deklaration initialisiert, was bedeutet, dass später kein anderer Wert zugewiesen werden kann.
- ein statische Feld und der Wert wird immer gleich bleiben, unabhängig von der Instanz.
- konstant weil es sowohl statische und letzte.
Meine Fragen sind
Was sind die Unterschiede zwischen den beiden sind? (ohne Erstellungszeit)
Fehle ich etwas?
Dies ist meine erste Frage also, fühlen Sie sich frei, den Stil zu kommentieren und wenn ich improv e es. – naaz
Wenn Sie eine endgültige Variable zur Deklarationszeit initialisieren, sollte sie wahrscheinlich statisch sein ... – assylias
Ein möglicher Unterschied ist, dass ein 'static final'-Primitiv zur Laufzeit nicht verwendet wird. Der Compiler hätte alle Vorkommen während des Kompilierens durch den Wert ersetzt, wodurch er optimiert wurde. – Codebender