Heim  >  Artikel  >  Java  >  Häufige Fragen im Vorstellungsgespräch zur Java-Reflexion

Häufige Fragen im Vorstellungsgespräch zur Java-Reflexion

(*-*)浩
(*-*)浩Original
2019-12-28 14:56:033704Durchsuche

Häufige Fragen im Vorstellungsgespräch zur Java-Reflexion

Was ist Reflexion?

Reflexion bezieht sich hauptsächlich auf die Fähigkeit eines Programms, auf seinen eigenen Zustand oder sein eigenes Verhalten zuzugreifen, ihn zu erkennen und zu ändern

Java-Reflexion:                                                                                             :Java common Interviewfragen)

Können Sie in der Java-Laufzeitumgebung für jede Klasse wissen, welche Eigenschaften und Methoden diese Klasse hat?

Kann für jedes Objekt eine seiner Methoden aufgerufen werden?

Der Java-Reflexionsmechanismus stellt hauptsächlich die folgenden Funktionen bereit:

In Bestimmen Sie die Klasse, zu der ein Objekt zur Laufzeit gehört.

Konstruieren Sie zur Laufzeit ein Objekt einer beliebigen Klasse.

Beurteilen Sie die Mitgliedsvariablen und Methoden jeder Klasse zur Laufzeit.

Rufen Sie die Methode eines beliebigen Objekts zur Laufzeit auf.

Was ist Java-Serialisierung? Wann ist eine Serialisierung erforderlich?

Einfach ausgedrückt geht es darum, den Status verschiedener Objekte im Speicher zu speichern (also Instanzvariablen, nicht Methoden) und den gespeicherten Objektstatus auszulesen.

Obwohl Sie Ihre eigenen verschiedenen Methoden zum Speichern von Objektzuständen verwenden können, bietet Ihnen Java einen Mechanismus, der zum Speichern von Objektzuständen besser sein sollte als Ihr eigener, und das ist die Serialisierung.

Unter welchen Umständen ist Serialisierung erforderlich:

a) Wenn Sie den Objektstatus im Speicher in einer Datei oder Datenbank speichern möchten;

b ) Wenn Sie Objekte über das Netzwerk mithilfe von Sockets übertragen möchten;

c) Wenn Sie Objekte über RMI übertragen möchten; Was ist ein dynamischer Proxy? Welche Anwendungen gibt es?

Dynamischer Proxy:

Wenn Sie Methoden in einer Klasse, die eine Schnittstelle implementiert, zusätzliche Verarbeitung hinzufügen möchten. Zum Beispiel Protokolle hinzufügen, Transaktionen hinzufügen usw. Sie können einen Proxy für diese Klasse erstellen. Der Name impliziert also, dass Sie eine neue Klasse erstellen. Diese Klasse enthält nicht nur die Funktionen der ursprünglichen Klassenmethoden, sondern fügt auch neue Klassen für die zusätzliche Verarbeitung auf der ursprünglichen Basis hinzu.

Diese Proxy-Klasse ist nicht definiert, sondern wird dynamisch generiert. Es hat Entkopplungsbedeutung, Flexibilität und starke Skalierbarkeit.

Aktive Agent-Anwendung:

Spring's AOPTransaktion hinzufügen

Berechtigungen hinzufügen

Protokoll hinzufügen

Wie implementiert man einen dynamischen Proxy?

Zuerst muss eine Schnittstelle definiert werden, und es muss auch eine InvocationHandler-Verarbeitungsklasse (übergeben Sie das Objekt der Klasse, die die Schnittstelle implementiert) vorhanden sein. Es gibt noch eine andere Tool-Klasse Proxy (üblicherweise wird sie als Proxy-Klasse bezeichnet, da durch den Aufruf von newInstance() ein Proxy-Objekt generiert werden kann, es sich jedoch tatsächlich nur um eine Tool-Klasse handelt, die Proxy-Objekte generiert).

Verwenden Sie den InvocationHandler, um den Quellcode der Proxy-Klasse zu spleißen, ihn zu kompilieren, um den Binärcode der Proxy-Klasse zu generieren, ihn mit dem Loader zu laden, ihn zu instanziieren, um das Proxy-Objekt zu generieren, und ihn schließlich zurückzugeben.

Weitere Java-bezogene Technologien finden Sie in der Spalte

Java-Video-Tutorial

, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonHäufige Fragen im Vorstellungsgespräch zur Java-Reflexion. 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