Alles, was ist, static
ist in der Klassenstufe. Sie müssen keine Instanz erstellen, um auf statische Felder / Methoden zugreifen zu können. Die statische Variable wird beim Laden der Klasse einmal erstellt.
Instanzvariablen sind die dem Objekt zugeordnete Variable. Dies bedeutet, dass für jedes von Ihnen erstellte Objekt Instanzvariablen erstellt werden. Alle Objekte haben eine separate Kopie der Instanzvariablen für sich.
In Ihrem Fall, wenn Sie es als deklariert haben static final
, ist dies nur eine Kopie der Variablen. Wenn Sie es von mehreren Instanzen aus ändern, wird dieselbe Variable aktualisiert (Sie haben jedoch eine final
Variable, sodass sie nicht aktualisiert werden kann).
Im zweiten Fall ist das final int a
ebenfalls konstant, wird jedoch jedes Mal erstellt, wenn Sie eine Instanz der Klasse erstellen, in der diese Variable deklariert ist.
Schauen Sie sich dieses Java-Tutorial zum besseren Verständnis an.