Wir verwenden Reflexion für eine benutzerdefinierte Klasse Mitarbeiter als:Wie speichert JVM Metainformationen einer Klasse?
Employee e = new Employee();
Class c = e.getClass();
Wie pro meines Wissens erste JVM den Bytecode der Klasse Mitarbeiter lädt, dann auch er ein Objekt von Class.class für jede geladene Klasse erstellen (Klasse Mitarbeiter hier). Im Objekt von Class.class speichert JVM Metainformationen über die zuletzt geladene Klasse.
Meta-Informationen einer Klasse sind "Name der Methoden", "Name der Felder" usw. Klasse dieser Typen wie "Methode", "Feld" usw. sind in java.lang.reflect-Paket definiert.
Ich habe Code von Class.java gesehen. Ich habe Methoden in Class.class gefunden, die Objekte oder ein Array von Objekten dieser Typen wie "Methode", "Feld" usw. zurückgeben. Aber es gibt kein Feld in Class.class, dessen Typ "Method", "Field" etc .
Wenn meine obigen Aussagen falsch sind, bitte mich korrigieren. Wenn obige Aussagen nicht falsch sind, habe ich folgende Zweifel: 1). In welchem Bereich von Class.class werden verschiedene Informationen zu einer Klasse gespeichert? 2). In welchem Speicherbereich von JVM werden Objekt von Employee und Objekt von Class.class gespeichert? 3). In welchem Speicherbereich von JVM werden der Bytecode von Employee und der Bytecode von Class.class gespeichert?
Warum ist es Ihnen wichtig? – Holger