35+ Java 8 Interviewfragen und Antworten (2025)
Ob Techniker oder ein anderer Fachmann, Interviews kurbeln immer das Adrenalin aus der Nervosität heraus. Um sich jedoch von der Masse abzuheben, ist es wichtig, Ihre Fähigkeiten zu verbessern und auf Ihre Fähigkeiten zu setzen. Darüber hinaus ist es wichtig, die häufig gestellten Fragen zu kennen. Java 8 Fragen und Antworten im Vorstellungsgespräch können Ihnen weiterhelfen.
Tauchen Sie daher tief in diese Java 8-Interviewfragen für Erfahrene und Anfänger ein, um Ihre bevorstehenden Interviews erfolgreich zu meistern.
Java 8 Interviewfragen für Berufsanfänger und Berufserfahrene
1) Java 8 fällt in welches Programmierparadigma?
Java 8 fällt in das folgende Programmierparadigma:
- Objekt- oder klassenorientierte Programmiersprache.
- Funktionale Programmiersprache.
- Spezifizierte prozedurale Programmiersprache.
- Logische Programmiersprache.
2) Warum sollte man die optionale Klasse verwenden?
Die optionale Klasse ist eine neu eingeführte Containerklasse, die zur Demonstration vorhandener oder nicht vorhandener optionaler Werte nützlich ist. Sein Hauptvorteil besteht darin, Null- und Void-Prüfungen zu vermeiden und Methoden zu ermöglichen, die zur Überprüfung der Existenz eines Werts für eine bestimmte Variable nützlich sind.
3) Nennen Sie einige neue Funktionen, die in Java 8.
Nachfolgend sind die neuesten Funktionen aufgeführt, die eingeführt wurden in Java 8:
- Lambda-Ausdrücke: Es ist ein Java Funktion, die Sie als Objekt freigeben oder referenzieren können.
- Methodeninterferenz: Es verwendet die Funktion als Kriterium für die Implementierung einer Methode.
- Funktionelle Beeinträchtigung: Jede funktionale Störung ist mit einer einzigen abstrakten Methode verbunden, die als funktionale Methode bezeichnet wird.
- Standardmethode: Es ist nützlich bei der Implementierung von Methoden in den Schnittstellen, die dabei helfen, das Potenzial der „Schnittstellenentwicklung“ zu ermöglichen.
- Datum-Uhrzeit-API: Es handelt sich um eine verbesserte und dennoch inspirierte Version der Java-Time-APIs, um die Nachteile der letzten Version zu beseitigen.
- Stream-API wird als abstrakte Schicht bezeichnet, die dabei hilft, die Verarbeitungsdaten weiterzuleiten.
- Optional: Die Wrapper-Klasse ist nützlich, um die Nullwerte zu überprüfen und die weiteren Daten zu verarbeiten.
- JavaSkript und Nashorn-Engine: Es ist die verbesserte Version des JavaScript Engine, die nützlich ist, um die Funktionalität in Java, ersetzt Rhino.
4) Spezifizieren Sie die Vorteile der Verwendung von Java 8
Hier sind einige Vorteile der Verwendung Java 8:
- Es hilft dabei, Anwendungen viel schneller und einfacher zu erstellen.
- Es bietet den Entwicklern eine sehr stabile Umgebung.
- Prägnante, wiederverwendbare und leicht verständliche Codes.
- Verbesserte und effektive Unterstützung.
- Einfache Portierung auf verschiedene Betriebssysteme.
- Mindeststandardcodes.
5) Was ist eine Sammlung und wie unterscheidet sie sich von einem Stream?
Eine Sammlung ist eine In-Memory-Datenbank, die alle Werte gemäß der aktuellen Datenstruktur aufzeichnet. Daher ist es wichtig, jeden einzelnen Wert zu berechnen, bevor Sie ihn zur Sammlung hinzufügen. Ein Stream hingegen ist eine visuell festgelegte Datenstruktur, in der wir die Elemente entsprechend unseren Anforderungen berechnen können.
6) Was ist der Lambada-Ausdruck?
Der Lambada-Ausdruck ist eine Art Funktion, die keinen Namen hat und manchmal als anonyme Funktion bezeichnet wird, da sie keine eigene Art von Informationen hat. Sie können es je nach Bedarf verwenden und es ist sehr nützlich beim Wiederholen, Filtern und Extrahieren von Daten aus der Sammlung.
Ejemplo:
import java. util.Arrays; import java.util.List; import java.util.stream.Collectors; public class LambdaExpressionExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave"); List<String> filteredNames = names.stream() .filter(name -> name.startsWith("C")) .map(name -> name.toUpperCase()) .collect(Collectors.toList()); System.out.println(filteredNames); } }
Ausgang:
Charlie
7) Definieren Sie Stream-Pipelining
Stream-Pipelining ist eine Methode, verschiedene Vorgänge zu gruppieren. Sie können dies erreichen, indem Sie die Stream-Vorgänge in zwei Teile kategorisieren. Zwischen- und Endvorgänge.
Wenn eine Zwischenoperation ausgeführt wird, wird eine Instanz an die Stream-Pipeline zurückgesendet. Daher kann jeder Benutzer eine beliebige Anzahl von Zwischenoperationen einrichten, um Daten zu rationalisieren und letztendlich eine Verarbeitungspipeline zu bilden.
Darüber hinaus ist zum Beenden der Pipelines am Ende des Prozesses ein Terminalvorgang erforderlich.
8) Was sind Prädikat und Konsument in Java 8?
Ein Prädikat ist eine funktionale Schnittstelle, die normalerweise Argumente empfängt und einen booleschen Wert abruft. Sie können damit einen Filter für eine Sammlung von Objekten anwenden.
Auf der anderen Seite wird der Verbraucher als eingebaute funktionale Schnittstelle bezeichnet, die sich in Java.util.function-Paket. Sie können es verwenden, um jedes beliebige Objekt zu verwenden. Es nimmt den Eingabewert und gibt nichts aus.
9) Warum wird die Methode peek() verwendet in Java 8?
Die peek()-Methode hilft beim Debuggen, wenn man die Elemente bemerken möchte, wenn sie dazu neigen, von einem bestimmten Punkt in einer Pipeline zu fließen. Es ist eine Darstellung unserer Beobachtung, wie jedes Element durchläuft.
Syntax: public Object peek()
10) Was macht Sie zum idealen Kandidaten für die Java Entwicklerrolle?
Hier sind einige wichtige Eigenschaften, die Sie zum idealen Kandidaten machen können für die Java Entwicklerrolle:
- Sie sollten in der Lage sein, klare, leicht verständliche und effiziente Codes zu schreiben.
- Ein tiefes Verständnis der Muster und Konzepte von „OOP oder objektorientierte Programmierung"
- Gute Kenntnisse verschiedener Architektur- und Designmuster.
- Vertrautheit mit Java Parallelitätsmuster.
- Erfahrung und Kenntnisse in der Arbeit mit verschiedenen Webanwendungs-Frameworks wie z Spark und Spiel.
- Grundlegende Kenntnisse über Java Virtuelle Maschine oder JVM, ihre Nachteile, Problemumgehung usw.
- Gute Erfahrung im Umgang mit eingebetteten und externen Datenbanken.
11) Erklären Sie die „funktionale Schnittstelle“.
Eine Schnittstelle mit nur einem Abstract wird als funktionale Schnittstelle bezeichnet. Sie ist auch als Single Abstract Method oder SAM bekannt. Die Annotation @FunctionalInterface ist jedoch optional und kann auch dann verwendet werden, wenn sie nicht vorhanden ist. Es erstreckt sich auf die andere Schnittstelle, wenn diese keine Zusammenfassung hat.
12) Warum werden statische Methoden benötigt in Java 8?
Eine statische Methodenreferenz wird als Dienstprogramm oder Hilfsmethode bezeichnet, die mit einer Schnittstelle verknüpft ist. Es ist auch eine Klasse, die mit keinem Objekt verknüpft ist.
Hier sind Gründe für die Verwendung der statischen Methode in Java:
- Nützlich für die Wartung und Erweiterung der API.
- Bringt eine klare und präzise Aufteilung der Verantwortlichkeiten mit sich, und Sie benötigen nicht eine Dienstprogrammklasse, um über die Dienstprogrammsammlungen zu verfügen.
- Nützlich, um alle Schnittstellen in einer gemeinsamen Schnittstelle und nicht in bestimmten Schnittstellen zu speichern.
13) Was sind die Vorteile von Nashorn?
Nashorn ist das fortschrittlichste und neuste JavaSkript Verarbeitungs-Engine eingeführt in Java 8. Früher basierte es auf Mozilla Rhino. Es bietet eine verbesserte Konformität mit ECMA JavaSkript. Es ist schneller als seine Vorgängerversionen.
14) Wie unterscheiden sich die Collection API und die Stream API?
Hier sind einige wichtige Unterschiede zwischen der Collection API und der Stream API
Sammlungs-API | Stream-API |
---|---|
Collection API wurde erstmals verwendet in Java 1.2 | Stream API wurde erstmals eingeführt in Java SE8. |
Sie können damit unbegrenzt Daten speichern. | Sie können damit unbegrenzt viele Daten berechnen. |
Mit der Collection API können Sie Iterator und Spilterator zum Iterieren der Daten verwenden. | Mit der Stream-API können Sie Iterator und Spilterator zum Iterieren der Daten verwenden. |
Der Zugriff auf die Sammlungs-API ist einfach. | In-Stream-API gibt es keine direkte Möglichkeit, bestimmte Elemente zu erreichen. |
Es erleichtert auch die Verarbeitung entsprechend Ihren Anforderungen. | Die Stream-API kann nur einmal verarbeitet werden. |
15) Beschreiben Sie PermGenSpace und MetaSpace.
PermGen oder Permanent Generation Space ist ein einzigartiger Typ von Hektospeicher, der zur Nachverfolgung gespeicherter Metadaten verwendet wird und nun entfernt wird in Java 8.
Mit dieser neuen Version erfolgt die Speicherung der Metadaten in einem ähnlichen Speicher namens „MetaSpace“. Es handelt sich nicht um ein übertragbares Java Heap-Speicher und ist eine verbesserte Version von PermGen in Bezug auf Auto-Tuning, Garbage Collection usw.
16) Wie entsteht eine funktionale Schnittstelle in Java 8?
Sie können Lambda-Ausdrücke verwenden, um die abstrakte Methode der funktionalen Schnittstelle in Java 8. Unten sehen Sie ein entsprechendes Codierungsbeispiel:
Beispiel
import java.util.function.Consumer; public class FunctionalInterfaceExample { public static void main(String[] args) { Consumer<String> printer = System.out::println; printer.accept("Hello, world!"); } }
Ausgang:
Hello, world!
17) Was sind die Unterschiede und Ähnlichkeiten zwischen Funktion und Prädikat in Java 8?
Hier sind die Unterschiede zwischen Funktion und Prädikat in Java 8:
- Die Funktion ist bei der Transformation nützlich, während das Prädikat zum Testen jeder Bedingung verwendet werden kann.
- Eine Funktion kann ein Argument empfangen und ein Ergebnis ausgeben, wohingegen ein Prädikat ebenfalls ein Argument empfangen kann, aber nur den booleschen Wert ausgibt.
- Die Funktion wird mit bezeichnet , und Prädikat wird nur mit bezeichnet , wobei T der Funktionstyp und R das Ergebnis ist.
Nachfolgend sind die Ähnlichkeiten zwischen Funktion und Prädikat aufgeführt:
- Sowohl Funktion als auch Prädikat sind funktionale Schnittstellen.
- Sowohl Funktion als auch Prädikat sind Einzelargumentfunktionen.
18) Erklären Sie den Unterschied zwischen Skip(long) und Limit(long) anhand eines Beispiels.
Der Skip (lang) ist eine Zwischenoperation, die die übrig gebliebenen Elemente abruft, nachdem die ersten n Elemente eines bestimmten Streams eliminiert wurden.
Ejemplo:
import java.util.Arrays; import java.util.List; public class SkipExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve"); // Create a stream from the names list names.stream() // Skip the first two elements of the stream .skip(2) // Print the remaining elements to the console .forEach(System.out::println); } }
Ausgang:
Charlie Dave Eve
Das Limit (long) ruft den Strom von Elementen einer bestimmten Größe ab
Ejemplo:
import java.util.Arrays; import java.util.List; public class LimitExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve"); // Create a stream from the names list names.stream() // Limit the stream to the first three elements .limit(3) // Print the elements to the console .forEach(System.out::println); } }
Ausgang:
AliceBob Charlie
19) Welche Situation eignet sich am besten für die Verwendung der Stream-API in Java 8?
Sie können die Stream-API in Java 8. Die folgenden Vorgänge sind erforderlich:
- Sie können eine Parallelverarbeitung durchführen.
- Zur verzögerten Ausführung von Operationen
- So führen Sie Datenbankvorgänge aus
- Für interne Iterationen verwenden.
- Zum Schreiben funktionaler Programmierung
- Sie können es für die Verwendung von Pipeline-Operationen verwenden.
20) Welche Funktion hat die Typinferenz?
Typinferenz unterstützt den Compiler beim Identifizieren oder Erkennen der Argumenttypen, indem er lediglich einen Überblick über die entsprechende Deklaration und den Methodenaufruf hat.
21) Wie lassen sich doppelte Elemente in einer Liste am einfachsten identifizieren und eliminieren? Java 8?
Die einfachste Möglichkeit zum Identifizieren und Entfernen doppelter Elemente besteht in der Verwendung der Stream-Operation und dem Durchführen einer Sammlung, gefolgt von der Verwendung der Methode Collections.toSet().
22) Was sind die Richtlinien für die funktionale Schnittstelle?
Nachfolgend finden Sie die Richtlinien für eine funktionale Schnittstelle, die zu den am häufigsten gestellten Java 8 Programmierfragen:
- Es sollte nur eine abstrakte Methode haben.
- Sie können bis zu mehrere Standardmethoden haben, da diese nicht abstrakt sind und die Implementierung früher durch dieselben erfolgt.
- Eine abstrakte Methode, das Hauptelement öffentlicher Methoden aus Java.lang, ist in einer funktionalen Schnittstelle bekannt. Objekt wird immer noch als nützliche Schnittstelle angesehen.
Hinweis: Die Erklärung dafür ist, dass jede Implementierungsklasse für diese Schnittstelle eine Implementierung für diese abstrakte Methode haben kann, die entweder von der Implementierungsklasse selbst definiert oder einer Oberklasse entnommen wird.
23) Unterscheiden Sie zwischen Spliterator und Iterator.
Hier sind einige Unterschiede zwischen Spliterator und Iterator:
Splitter | Iteratoren |
---|---|
Es wurde eingeführt in Java 1.2 | Es wurde eingeführt in Java 1.8 |
Es werden nur alle Elemente einzeln iteriert. | Es durchquert alle Elemente sowohl einzeln als auch in großen Mengen. |
Es fungiert als Iterator für eine vollständige Sammlung von APIs. | Es fungiert als Iterator sowohl für die Stream- als auch für die Sammlungs-API. |
Es wird keine parallele Programmierung unterstützt. | Es unterstützt die parallele Programmierung. |
24) Wie kann man eine Standardmethode einer Schnittstelle in einer Klasse aufrufen?
Das Schlüsselwort default, das am Anfang der Methodensignatur steht, wird verwendet, um eine Methodendeklaration in einer Schnittstelle als Standardmethode zu kennzeichnen. Sie können den öffentlichen Modifikator überspringen, da jede Methodendeklaration in einer Schnittstelle, einschließlich Standardmethoden, automatisch öffentlich ist.
25) Definieren Sie die Standardmethode. Wann können Sie es verwenden?
Die Standardmethode ist in der Schnittstelle vorhanden und enthält eine Implementierung. Diese Methode ist hilfreich, um einer bestimmten Schnittstelle neue Funktionen hinzuzufügen und gleichzeitig die Abwärtskompatibilität mit den bereits in einer Schnittstelle implementierten Klassen aufrechtzuerhalten.
26) Wie entstehen Streams in Java, und gehört es zu den am häufigsten gestellten Fragen in Java-8-Stream-Interviews?
Ströme ein Java Beschreiben Sie die Sequenz von Objekten aus einer bestimmten Quelle, z. B. eine Sammlung, die Aggregatoperationen unterstützt. Sie können sie zum Sammeln, Filtern, Drucken und Ändern einer Datenstruktur in eine andere verwenden.
Hier sind Beispiele für die Erstellung von Streams in Java:
import java.util.stream.Stream; public class StreamExample { public static void main(String[] args) { Stream<String> stream = Stream.of("Alice", "Bob", "Charlie", "Dave", "Eve"); stream.forEach(System.out::println); } }
Ausgang:
Alice Bob Charlie Dave Eve
27) Was sind Map- und FlatMap-Stream-Operationen?
Map und FlatMap werden als Stream- und Zwischenstreamoperationen betrachtet, die eine Funktion akzeptieren. Sie helfen auch dabei, die angegebene Funktion auf die übrigen Elemente anzuwenden.
28) Warum müssen wir die Java Programmiersprache häufig?
Wir müssen die Java Programmiersprache häufig aus den folgenden Gründen:
- Sie können die Funktionen von nutzen Funktionsprogrammierung.
- Um die neueste Technologie von Multi-Core-CPUs effektiv zu nutzen.
29) Nennen Sie einige funktionale Schnittstellen in Java 8.
Nachfolgend sind einige funktionale Schnittstellen aufgeführt, die in Java 8:
- BinärOperaDo.
- Privatkunden
- Funktion
- Lieferanten
- EinstelligOperaDo.
- BiFunktion
- Prädikat
30) Was sind die wichtigsten API-Klassen für Uhrzeit und Datum?
Nachfolgend sind die wichtigsten API-Klassen für Zeit und Datum aufgeführt, die in Java 8:
- Ortszeit
- LocalDateTime
- Lokales Datum
31) Geben Sie die Grundstruktur/Syntax des Lambda-Ausdrucks an.
Die Grundstruktur/Syntax des Lambda-Ausdrucks ist:
(arugument - list) - > {body}
Hier
- Argument – Liste: Sie können es gefüllt oder leer halten.
- Pfeil-Token: Es ist nützlich beim Verknüpfen von Körperausdrücken und Argumenten – Liste.
- Karosserie: Es besteht aus Anweisungen und Ausdrücken für den Lambda-Ausdruck.
32) Was sind die Hauptmerkmale von Stream?
Nachfolgend sind die Hauptmerkmale von Stream aufgeführt:
- Pipelining
- Quelle
- Aggregat Operations
- Reihenfolge der Elemente
- Automatische Iterationen
33) Was sind die häufigsten Zwischenoperationen?
Einige der häufigsten Arten von Zwischenausdrücken sind:
- Unterscheidbar ()
- Überspringen (langes n)
- Filter (Prädikat)
- Grenze (langes n)
- Karte (Funktion)
34) Was sind die häufigsten Arten von Terminalvorgängen?
Nachfolgend sind die gängigsten Arten von Terminalvorgängen aufgeführt:
- Zu Zählen
- Reduziert
- Min.
- AllMatch
- Max
- AnyMatch
- Zum Anordnen
35) Was ist eine Methodenreferenz in Java 8?
Methodenreferenz in Java 8 ist eine Möglichkeit, auf die funktionale Schnittstelle zu verweisen. Es ist als viel einfachere und effizientere Form des Lambda-Ausdrucks bekannt. Wenn Sie Lambda-Ausdrücke verwenden, um auf eine Methode zu verweisen, können Sie diese durch die Methodenreferenz ersetzen.
36) Wie unterscheiden sich interne und externe Iterationen?
Nachfolgend sind die Unterschiede zwischen interner und externer Iteration aufgeführt:
Interne Iteration | Externe Iteration |
---|---|
Er wird auch als passiver oder impliziter Iterator bezeichnet. | Er wird auch als aktiver oder expliziter Iterator bezeichnet. |
Es wird intern auf verschiedenen Objekten getragen. | Es wird äußerlich an verschiedenen Gegenständen getragen. |
Es wird in der funktionalen Programmierung verwendet. | Es wird in der objektorientierten Programmierung verwendet. |
Es verursacht sehr wenig Fehler. Allerdings ist Codierung dafür ein Muss. | Es verursacht mehr Fehler. Eine Codierung ist jedoch nicht erforderlich. |
37) Wurde in früheren Versionen von Java?
Java eingeführte Typinterferenz in Java 5, aber mit sehr eingeschränktem Zugang. Aber im Laufe der Jahre haben die Möglichkeiten der Typinterferenz zugenommen, und es ist am besten in Java 8.
38) Schreiben Sie ein Java 8 Programm, das die minimale und maximale Zahl eines Streams ermitteln kann.
import java.util.Arrays; import java.util.stream.IntStream; public class MinMaxExample { public static void main(String[] args) { int[] numbers = {9, 3, 8, 1, 5, 7, 2, 6, 4}; int min = IntStream.of(numbers).min().getAsInt(); int max = IntStream.of(numbers).max().getAsInt(); System.out.println("Minimum number: " + min); System.out.println("Maximum number: " + max); } }
Ausgang:
Minimum number: 1 Maximum number: 9
39) Wie verbindet man mehrere Strings über die StringJoiner-Klasse?
StringJoiner hilft beim Verbinden eines oder mehrerer Strings und kann über einen bestimmten Verbinder oder Trenner erfolgen. Beispielsweise kann man mehrere Strings verbinden, indem man sie mit einem Komma (,) trennt.
Um einen CSV-String zu erstellen, kann man unter Linux einen vollständigen Pfad für ein bestimmtes Verzeichnis generieren, indem man den String mit Hilfe des Schrägstrichs „/“ verbindet.
40) Was ist die beste Alternative zu Lambda-Ausdrücken in Java 8?
Im Allgemeinen verwenden wir Lambda-Ausdrücke, um anonyme Methoden zu erstellen, die dabei helfen, die gewünschte Ausgabe zu erhalten. Es gibt jedoch Fälle, in denen Lambda-Ausdrücke nicht funktionieren und nur eine vorhandene Methode verwenden.
Um dies zu vermeiden, können Sie eine Methodenreferenz verwenden, die dabei helfen kann, die gewünschte Ausgabe zu erhalten. Die Methodenreferenz wird mit dem Symbol: (Doppelpunkt) dargestellt.