Heim  >  Artikel  >  Java  >  Was ist der Lebenszyklus anonymer innerer Java-Klassen?

Was ist der Lebenszyklus anonymer innerer Java-Klassen?

王林
王林Original
2024-05-01 16:06:01945Durchsuche

Der Lebenszyklus einer anonymen inneren Klasse wird durch ihren Geltungsbereich bestimmt: Methodenlokale innere Klasse: nur gültig innerhalb des Geltungsbereichs der Methode, die sie erstellt hat. Konstruktor der inneren Klasse: An die Instanz der äußeren Klasse gebunden und freigegeben, wenn die Instanz der äußeren Klasse freigegeben wird. Statische innere Klassen: werden gleichzeitig mit externen Klassen geladen und entladen.

Java 匿名内部类的生命周期是怎样的?

Der Lebenszyklus anonymer innerer Java-Klassen

Nachdem eine anonyme innere Klasse erstellt wurde, wird ihr Lebenszyklus hauptsächlich durch den Bereich beeinflusst, in dem sie sich befindet:

  • Methode lokale innere Klasse: Nur wenn es erstellt wird. Gültig im Methodenbereich. Wenn die Methode beendet wird, werden die innere Klasse und alle ihre Mitglieder freigegeben.
  • Innere Konstruktorklasse: Nach dem Erstellen einer externen Klasseninstanz wird die innere Konstruktorklasse wirksam. Wenn die Instanz der äußeren Klasse freigegeben wird, wird auch die innere Klasse freigegeben.
  • Statische innere Klasse: Die statische innere Klasse wird gleichzeitig mit der äußeren Klasse geladen. Wenn die äußere Klasse entladen wird, wird auch die statische innere Klasse entladen.

Praktischer Fall:

Erstellen Sie eine anonyme innere Klasse, um die Comparable-Schnittstelle zu implementieren: Comparable 接口:

List<Integer> numbers = new ArrayList<>();

// 创建匿名内部类比较器
Comparator<Integer> comparator = new Comparator<Integer>() {
    @Override
    public int compare(Integer a, Integer b) {
        return a - b;
    }
};

// 根据比较器排序列表
Collections.sort(numbers, comparator);

在这个例子中,匿名内部类 comparator 用于对 numbers 列表进行排序。由于 comparator 是局部内部类,它只能在创建它的方法范围内使用。当 sort 方法执行完毕,comparatorrrreee

In diesem Beispiel wird die anonyme innere Klasse comparator verwendet Vergleichen Sie die Liste der zu sortierenden -Nummern. Da comparator eine lokale innere Klasse ist, kann sie nur im Rahmen der Methode verwendet werden, die sie erstellt hat. Wenn die Methode sort abgeschlossen ist, wird auch comparator freigegeben. 🎜

Das obige ist der detaillierte Inhalt vonWas ist der Lebenszyklus anonymer innerer Java-Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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