Heim  >  Artikel  >  Java  >  Java-Interviewfragen, zusammengefasst aus langjähriger Entwicklungserfahrung - (3)

Java-Interviewfragen, zusammengefasst aus langjähriger Entwicklungserfahrung - (3)

王林
王林nach vorne
2020-08-13 16:59:182772Durchsuche

Java-Interviewfragen, zusammengefasst aus langjähriger Entwicklungserfahrung - (3)

1. Wofür wird das Schlüsselwort final in Java verwendet?

Die geänderten Variablen müssen initialisiert werden oder können nicht geändert werden, die geänderte Klasse kann nicht vererbt werden und die geänderte Methode kann nicht überschrieben werden.

(Weitere Empfehlungen zu Interviewfragen: Häufige Java-Interviewfragen)

2. Es gibt eine Return-Anweisung in try{}. Wird der Code in „finally{}“ dann unmittelbar nach dem Versuch ausgeführt? , vor oder nach return?

wird ausgeführt, nachdem return ausgeführt wurde, aber bevor das Ergebnis zurückgegeben wird, legt return das Rückgabeergebnis auf dem Funktionsstapel ab und wartet auf die endgültige Ausführung, bevor es tatsächlich zurückkehrt

3. Erklären Sie den Unterschied zwischen „final“, „finally“ und „finalize“.

final wird zum Ändern von Klassen (kann nicht vererbt werden), Variablen (kann nicht geändert werden, kann nur einmal zugewiesen werden) und Methoden (kann nicht umgeschrieben werden) verwendet werden.

finally wird zum Ausführen verwendet, um festzustellen, ob während der Ausführung eine Ausnahmeerfassung erfolgt von try{}catch Finally Block, Schließen von Ressourcen usw.

finalize ist der Methodenname, das letzte Wort des Objekts, das zum Ausführen der Methode verwendet wird, bevor der Garbage Collector das Objekt recycelt und bereinigt in der Objektklasse, und alle Klassen erben es.

(Empfohlene verwandte Tutorials: Java-Einführungs-Tutorial)

4. Wie erstelle ich Objekte durch Reflexion?

Erstellen Sie über die newInstance()-Methode des Class-Objekts eine Instanz der Klasse, die dem Class-Objekt entspricht.

Verwenden Sie das Class-Objekt, um das angegebene Konstruktorobjekt abzurufen, und rufen Sie die newInstance()-Methode des zu erstellenden Konstruktorobjekts auf eine Instanz der Klasse, die dem Class-Objekt entspricht.

5. Neue Funktionen von Java 8

1. Lambda ermöglicht die Verwendung von Funktionen als Parameter einer Methode oder die Behandlung von Code als Daten.

2. Standardmethoden und statische Methoden von Schnittstellen, verwenden Sie das Standardschlüsselwort und stellen Sie eine Standardimplementierung bereit. Alle Klassen, die diese Schnittstelle implementieren, akzeptieren die Implementierung der Standardmethode, es sei denn, die Unterklasse stellt ihre eigene Implementierung bereit. Sie können eine Implementierung auch bereitstellen, indem Sie eine statische Methode in der Schnittstelle definieren und das Schlüsselwort static verwenden.

3. Methodenreferenz, verwendet in Kombination mit Lambda-Ausdruck

(1) Konstruktorreferenz. Die Syntax ist Class::new

(2) Statische Methodenreferenz. Die Syntax lautet Class::static_method

(3) Jede Objektmethodenreferenz einer bestimmten Klasse. Seine Syntax ist Class::method

(4) Die Methodenreferenz eines bestimmten Objekts, seine Syntax ist Instanz::method

4. Java 8 führt doppelte Annotationen ein und dieselbe Annotation kann mehrmals an derselben Stelle deklariert werden . Der Wiederholungsannotationsmechanismus selbst muss mit @Repeatable annotiert werden. Java 8 hat Optimierungen auf der Compilerebene vorgenommen und dieselben Anmerkungen werden in einer Sammlung gespeichert, sodass sich das zugrunde liegende Prinzip nicht geändert hat.

5. Erweiterte Unterstützung für Anmerkungen. Anmerkungen können zu fast allem hinzugefügt werden, einschließlich lokaler Variablen, übergeordneter Klassen und Schnittstellenimplementierungen.

6. Führen Sie die optionale Klasse ein, um Nullzeigerausnahmen zu verhindern. Die optionale Klasse ist eigentlich ein Container: Sie kann Werte vom Typ T oder Null speichern. Bei Verwendung der optionalen Klasse müssen wir den Nullzeiger nicht explizit überprüfen.

(Empfohlenes Video-Tutorial: Java-Kurs)

7. Einführung in die Stream-API und den funktionalen Programmierstil, der den Code seriell macht und kontinuierliche und parallele Aggregationsvorgänge unterstützt, einfach und klar.

8. Die JavaScript-Engine Nashorn ermöglicht die Entwicklung und Ausführung von JavaScript-Anwendungen auf der JVM, sodass Java und JavaScript sich gegenseitig aufrufen können.

9. Base64, die Base64-Klasse bietet URL- und MIME-freundliche Encoder und Decoder.

10. Die Date/Time-API (JSR 310) stellt ein neues java.time-Paket bereit, das verwendet werden kann, um java.util.Date und java.util.Calendar zu ersetzen. Im Allgemeinen sind Clock, LocaleDate, LocalTime, LocaleDateTime usw da ZonedDateTime und Duration sehr gut zur Verbesserung von Uhrzeit und Datum geeignet sind.

Zusätzlich zu diesen zehn wichtigsten neuen Funktionen gibt es weitere neue Funktionen:

  • Besserer Typspekulationsmechanismus: Java 8 hat die Typspekulation erheblich verbessert, wodurch der Code sauberer wird. Es sind nicht zu viele Umwandlungen erforderlich.

  • Compiler-Optimierung: Java 8 fügt die Parameternamen von Methoden zum Bytecode hinzu, sodass die Parameternamen durch Reflektion zur Laufzeit abgerufen werden können. Sie müssen den Parameter -parameters nur zur Kompilierungszeit verwenden.

  • Paralleles Array: Unterstützt die parallele Verarbeitung von Arrays, hauptsächlich die parallelSort()-Methode, die die Geschwindigkeit der Array-Sortierung auf Mehrkernmaschinen erheblich verbessern kann.

  • Parallelität: Basierend auf dem neuen Stream-Mechanismus und Lambda wurden einige neue Methoden hinzugefügt, um Aggregationsvorgänge zu unterstützen.

  • Nashorn-Engine jjs: Ein Befehlszeilentool basierend auf der Nashorn-Engine. Es akzeptiert einige JavaScript-Quellcodes als Parameter und führt diese Quellcodes aus.

  • Klassenabhängigkeitsanalysator jdeps: Kann Abhängigkeiten von Java-Klassen auf Paket- oder Klassenebene anzeigen.

  • Der PermGen-Bereich von JVM wird entfernt: Er wird durch Metaspace (JEP 122) ersetzt.

Das obige ist der detaillierte Inhalt vonJava-Interviewfragen, zusammengefasst aus langjähriger Entwicklungserfahrung - (3). 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