Dieser Artikel untersucht hauptsächlich aktive und passive Zitate von Klassen in Java, wie unten beschrieben.
Aktive Zitation , hier sind fünf Szenarien des aktiven Zitats
1. Bei der Begegnung der vier Bytecode -Anweisungen von Neuen, Getstatic, Putstatic und Invokestatic, wenn die Klasse nicht initialisiert wird, wird sie initialisiert, ein Objekt erstellen, statische Felder lesen oder festlegen und statische Methoden aufrufen.
2. Reflexion
3. Die übergeordnete Klasse wird initialisiert, bevor die Unterklasse initialisiert wird.
4. Eine Klasse, die die Hauptmethode enthält, wird initialisiert, wenn die virtuelle Maschine startet.
5. Bei Verwendung der dynamischen Sprachunterstützung von JDK (unbekannt)
Passives Zitat :
Klasse Superclass {static {Syso ("Super init"); } public static int value = 123;} Klasse Subklasse erweitert die Superklasse {static {syso ("sub init")}} öffentliche Klasse ConstantClass {public static final hw = "helloWorld";} öffentliche Klasse NotInitialization {Main () {syso (subclass.value) // Superclass Sc [] = New Superclasse [10] //syso(constantClass.hw);}} Ausgabe: super init 123 Nur die Klasse, die dieses Feld direkt definiert, wird für den Zugriff auf statische Felder initialisiert. Die Unterklasse wird nicht initialisiert. Der erste Kommentar wird abgesagt und wird ohne Ausgabe ausgeführt. Die Referenzklasse durch Array -Definition auslöst nicht die Initialisierung der Klasse, sondern initialisiert eine Initialisierung einer Unterklasse, die automatisch von der virtuellen Maschine generiert und von der Objektklasse geerbt wird. Diese Klasse repräsentiert ein Array. Die Eigenschaften und Methoden des Arrays werden in dieser Klasse implementiert (Längenattribute und Clone ()). Nach dem zweiten Kommentar wird keine Ausgabe erfolgen. Konstante wird während der Zusammenstellung in den konstanten Pool platziert. ConstantClass.hw wird während der Zusammenstellung im konstanten Pool der Notinitialisierungsklasse platziert. Notinitialisierung hat keinen symbolischen Hinweis auf die Notinitialisierung.
In der oben genannten Art dreht sich alles um die kurze Diskussion dieses Artikels über aktive und passive Zitate zu Klassen in Java, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!