Heim > Java > javaLernprogramm > Statischer vs. Instanzinitialisierer: Welcher eignet sich am besten zum Initialisieren statischer Karten in Java?

Statischer vs. Instanzinitialisierer: Welcher eignet sich am besten zum Initialisieren statischer Karten in Java?

Barbara Streisand
Freigeben: 2024-12-05 15:55:10
Original
636 Leute haben es durchsucht

Static vs. Instance Initializer: Which is Best for Initializing Static Maps in Java?

Statischer vs. Instanzinitialisierer zum Initialisieren statischer Karten in Java

In Java hat die Initialisierung einer statischen Karte bestimmte Auswirkungen, die Ihre Wahl beeinflussen können der Initialisierungsmethode.

Statisch Initialisierer:

  • Statische Initialisierer unter Verwendung des statischen {}-Blocks werden ausgeführt, wenn die Klasse in den Speicher geladen wird.
  • Wie im Beispiel zu sehen ist, können Sie direkt instanziieren die Karte und füllen Sie sie innerhalb des Initialisierers Block.
  • Vorteile:

    • Einfache und unkomplizierte Syntax.
    • Initialisiert die Karte, wenn die Klasse geladen wird, wodurch eine frühe Verfügbarkeit sichergestellt wird.
  • Nachteile:

    • Die Die Karte ist möglicherweise nicht unveränderlich, sodass später Raum für mögliche Änderungen bleibt.
    • Wenn die Klasse endgültig ist, können Sie die Karteninitialisierung nicht überschreiben.

Instanzinitialisierer (anonyme Unterklasse):

  • Diese Methode beinhaltet die Erstellung einer anonymen Unterklasse um die statische Karte zu initialisieren.
  • Vorteile:

    • Erstellt eine unveränderliche Karte, die sie für den gleichzeitigen Zugriff threadsicher macht.
  • Nachteile:

    • Syntaktischer Zucker für statischen Initialisierer ohne Bedeutung Funktionsunterschied.
    • Der zusätzliche Overhead einer anonymen Klasse für eine relativ einfache Aufgabe.

Unveränderliche statische Karte mit einem statischen Initialisierer:

Wenn Unveränderlichkeit Priorität hat, können Sie eine unveränderliche Karte mit einem statischen Initialisierer erstellen, indem Sie zunächst eine veränderliche Karte instanziieren Karte, füllen Sie sie und verwenden Sie dann Collections.unmodifiableMap(), um eine unveränderliche Version zu erstellen:

public class Test {
    private static final Map<Integer, String> myMap;
    static {
        Map<Integer, String> aMap = ...;
        aMap.put(1, "one");
        aMap.put(2, "two");
        myMap = Collections.unmodifiableMap(aMap);
    }
}
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass der statische Initialisierer für die grundlegende statische Karteninitialisierung eine saubere und effiziente Lösung bietet. Für Szenarien, die Unveränderlichkeit erfordern, bietet jedoch die Erstellung einer unveränderlichen Karte über einen statischen Initialisierer einen robusten Ansatz.

Das obige ist der detaillierte Inhalt vonStatischer vs. Instanzinitialisierer: Welcher eignet sich am besten zum Initialisieren statischer Karten in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage