English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tiefere Verständnis des final Schlüsselworts in Java

 java final Schlüsselwort Erklärung:

Einleitung:

Das Schlüsselwort final in Java ist sehr wichtig und kann auf Klassen, Methoden und Variablen angewendet werden. In diesem Artikel werde ich dir zeigen, was das Schlüsselwort final ist? Was bedeutet es, Variablen, Methoden und Klassen als final zu deklarieren? Was sind die Vorteile der Verwendung von final? Schließlich gibt es auch einige Beispiele für die Verwendung von final. Final wird oft zusammen mit static verwendet, um Konstanten zu deklarieren, und du wirst sehen, wie final die Performance der Anwendung verbessert.

Bedeutung des Schlüsselworts final?

Das Schlüsselwort final ist in Java ein reserviertes Wort und kann Membervariablen, Methoden, Klassen und lokale Variablen deklarieren. Sobald du eine Referenz als final deklarierst, kannst du diese Referenz nicht mehr ändern. Der Compiler überprüft den Code und gibt einen Kompilationsfehler aus, wenn du versuchst, die Variable neu zu initialisieren.

Was ist eine final Variable?

Jede Variable, die als final deklariert wird, sei es eine Membervariable oder eine lokale Variable (Variablen, die innerhalb von Methoden oder Codeblöcken deklariert werden, werden als lokale Variablen bezeichnet), wird als final Variable bezeichnet. Final Variablen werden oft zusammen mit dem Schlüsselwort static verwendet, um Konstanten zu sein. Hier sind Beispiele für final Variablen:

public static final String LOAN = "loan";
LOAN = new String("loan") //invalid compilation error

Finalen Variablen sind schreibgeschützt.

Was ist eine finale Methode?63;

Final kann auch Methoden deklarieren. Wenn vor einer Methode das Schlüsselwort final steht, bedeutet das, dass diese Methode von einer Unterklasse nicht überschrieben werden kann. Wenn Sie denken, dass eine Methode bereits ausreichend vollständig ist und keine Änderungen in der Unterklasse erforderlich sind, können Sie diese Methode als final deklarieren. Finalen Methoden sind schneller als nicht finale Methoden, da sie bereits bei der Kompilierung statisch gebunden sind und keine dynamische Bindung während der Laufzeit erforderlich ist. Hier ist ein Beispiel für eine finale Methode:

class PersonalLoan{
  public final String getName(){
    return "personal loan";
  }
}
class CheapPersonalLoan extends PersonalLoan{
  @Override
  public final String getName(){
    return "cheap personal loan"; //Kompilationsfehler: überschriebene Methode ist final
  }
}

Was ist eine finale Klasse?

Mit dem Schlüsselwort final dekorierte Klassen werden als finalen Klassen bezeichnet. Finalen Klassen sind in der Regel vollständig funktional und können nicht vererbt werden. In Java gibt es viele finalen Klassen, wie zum Beispiel String, Interger und andere Wrapper-Klassen. Hier ist ein Beispiel für eine finale Klasse:

 final class PersonalLoan{
  }
  class CheapPersonalLoan extends PersonalLoan{ //Kompilationsfehler: kann von finaler Klasse nicht geerbt werden
}

  Vorteile des Schlüsselworts final

Nachfolgend werden einige Vorteile der Verwendung des Schlüsselworts final zusammengefasst

  1. Das Schlüsselwort final verbessert die Leistung. JVM und Java-Anwendungen cachen finalen Variablen.
  2. Finalen Variablen können sicher in einem Multithreading-Umfeld geteilt werden, ohne zusätzliche Synchronisationskosten.
  3. Durch die Verwendung des Schlüsselworts final optimiert die JVM Methoden, Variablen und Klassen.

Unveränderliche Klassen

Um unveränderliche Klassen zu erstellen, muss das Schlüsselwort final verwendet werden. Unveränderliche Klassen sind solche, deren Objekte nach der Erstellung nicht geändert werden können. String ist ein Beispiel für unveränderliche Klassen. Unveränderliche Klassen haben viele Vorteile, wie zum Beispiel, dass ihre Objekte schreibgeschützt sind, sicher in einem Multithreading-Umfeld geteilt werden können und keine zusätzlichen Synchronisationskosten entstehen.

Wichtige Punkte über final

  1. Der Schlüsselwort final kann für Member-Variablen, lokale Variablen, Methoden und Klassen verwendet werden.
  2. Finalen Member-Variable müssen entweder bei der Deklaration initialisiert oder im Konstruktor initialisiert werden, anderenfalls wird ein Kompilationsfehler ausgelöst.
  3. Man kann finalen Variablen nicht erneut zuweisen.
  4. Lokale Variablen müssen bei der Deklaration zugewiesen werden.
  5. In anonymen Klassen müssen alle Variablen final sein.
  6. Finalisierte Methoden können nicht überschrieben werden.
  7. Finalisierte Klassen können nicht vererbt werden.
  8. Das Schlüsselwort final ist nicht dasselbe wie das Schlüsselwort finally, das für den Exception-Handling verwendet wird.
  9. Das Schlüsselwort final ist leicht mit dem finalize()-Methoden verwechselt, die im Object-Klasse definiert ist und von der JVM vor der Müllentsorgung aufgerufen wird.
  10. Alle in einer Schnittstelle deklarierten Variablen sind final.
  11. Final und abstract sind gegensätzlich, eine final Klasse kann nicht abstract sein.
  12. Finalmethoden werden im Compilerzeitpunkt gebunden und werden als statische Bindung (static binding) bezeichnet.
  13. Finalisierte Variablen, die nicht bei der Deklaration initialisiert werden, werden als leere final-Variablen (blank final variable) bezeichnet. Sie müssen im Konstruktor initialisiert oder durch Aufruf von this() initialisiert werden. Andernfalls wird der Compiler einen Fehler „final Variable (Variablenname) muss initialisiert werden“ ausgeben.
  14. Die Deklaration von Klassen, Methoden und Variablen als final kann die Leistung verbessern, da der JVM die Möglichkeit hat, zu schätzen und zu optimieren.
  15. Laut Java-Codekonvention sind final-Variablen Konstanten und der Name der Konstante wird in Großbuchstaben geschrieben:
private final int ZAHL = 10;

Für die als final deklarierten Sammlungsobjekte bedeutet dies, dass der Verweis nicht geändert werden kann, aber Sie können Elemente hinzufügen, löschen oder ändern. Zum Beispiel:

private final List Kredite = new ArrayList();
Liste.add(„Hauskredit“); //gültig
Liste.add("persönliches Darlehen"); //gültig
Kredite = new Vector(); //nicht gültig

Wir wissen bereits, was final-Variablen, final-Methode und final-Klasse sind. Die Verwendung von final kann schneller und besserer Code schreiben, wenn es notwendig ist.

 Vielen Dank für das Lesen, ich hoffe, es hilft Ihnen, danke für Ihre Unterstützung dieser Website!

Vermutlich gefällt Ihnen