Heim  >  Artikel  >  Java  >  Fragen zum neuen Java-Interview 2020 – Reflexion

Fragen zum neuen Java-Interview 2020 – Reflexion

王林
王林nach vorne
2020-06-12 16:26:541870Durchsuche

Fragen zum neuen Java-Interview 2020 – Reflexion

1. 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:

In der Java-Laufzeitumgebung , Können Sie für jede Klasse wissen, welche Eigenschaften und Methoden diese Klasse hat? Kann für jedes Objekt eine seiner Methoden aufgerufen werden?

(empfohlene verwandte Video-Tutorials: Java-Video-Tutorial)

Der Java-Reflexionsmechanismus bietet hauptsächlich die folgenden Funktionen:

  • 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.

2. 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. Sie können zwar Ihre eigenen verschiedenen Methoden zum Speichern von Objektzuständen verwenden, Java bietet Ihnen jedoch einen Mechanismus, der zum Speichern von Objektzuständen besser sein sollte als Ihr eigener, und das ist die Serialisierung.

(empfohlene verwandte Tutorials: Erste Schritte mit Java)

Wann muss die Serialisierung durchgeführt werden:

  • Wenn Sie möchten, wenn der Objektstatus im Speicher in einer Datei oder Datenbank gespeichert wird;

  • Wenn Sie Sockets zum Übertragen von Objekten über das Netzwerk verwenden möchten;

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

Dynamischer Proxy:

Wenn Sie den Methoden in der Klasse, die eine bestimmte Schnittstelle implementiert, eine zusätzliche Verarbeitung hinzufügen möchten. Fügen Sie beispielsweise Protokolle hinzu, fügen Sie Transaktionen hinzu 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.

Anwendung eines dynamischen Proxys:

Spring's AOP
  • Transaktion hinzufügen
  • Berechtigungen hinzufügen
  • Protokolle hinzufügen
  • 4. 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 eine weitere Werkzeugklasse Proxy (normalerweise wird sie als Proxy-Klasse bezeichnet, da durch den Aufruf von newInstance() ein Proxy-Objekt generiert werden kann. Tatsächlich handelt es sich lediglich um eine Tool-Klasse, die Proxy-Objekte generiert). Verwenden Sie 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 schließlich zurückzukehren.

Empfohlene Interviewfragen:

Java-Interviewfragen

Das obige ist der detaillierte Inhalt vonFragen zum neuen Java-Interview 2020 – Reflexion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen