Einführung in Java 8 Interview Fragen und Antworten

Java 8 ist eine neue Plattform, die neu mit neuen Bibliotheken und Klassen veröffentlicht wird. Diese Funktionen konzentrieren sich hauptsächlich auf einen saubereren und kompakten Code. Die in dieser Version hinzugefügten neuen Funktionen können als Lambda-Ausdrücke, Methodenreferenzen, optionale, funktionale Schnittstelle und Standardmethoden, Nashorn-, Stream- und Datums-API aufgeführt werden. Die Notwendigkeit einer Änderung in Java bestand darin, aktuelle Multi-Core-CPUs effizient zu nutzen und FP-Funktionen zu nutzen.

Im Folgenden sind die wichtigsten Fragen aufgeführt, die im Interview gestellt wurden:

Wenn Sie nach einem Job suchen, der mit Java 8 zusammenhängt, müssen Sie sich auf die Java 8-Interview-Fragen 2019 vorbereiten. Es ist wahr, dass jedes Interview anders ist, je nach den verschiedenen Berufsprofilen. Hier haben wir die wichtigen Fragen und Antworten zu Java 8-Vorstellungsgesprächen vorbereitet, die Ihnen helfen, ein erfolgreiches Vorstellungsgespräch zu führen. Diese Interviewfragen gliedern sich in zwei Teile:

Teil 1 - Fragen zu Java 8-Vorstellungsgesprächen (Grundkenntnisse)

In diesem ersten Teil werden grundlegende Fragen und Antworten zu Java 8-Vorstellungsgesprächen behandelt

Q1. Inwiefern unterscheidet sich Java 8 von früheren Java-Versionen?

Antworten:
Verschiedene Java-Versionen sind wie folgt:

  • Datums-API : Es handelt sich um eine verbesserte API, die eine unveränderbare, von JodaTime inspirierte Datums-API ist.
  • Stream-API: Dies ist eine spezielle Iteratorklasse, die bei der funktionalen Verarbeitung der Objektauflistung hilft.
  • Lambda-Ausdruck: Dies ist eine neue Sprachfunktion, mit der verschiedene Aktionen, die als Objekte ausgeführt werden, behandelt werden können.
  • Methodenreferenz: Dies hilft bei der Definition von Lambda-Ausdrücken, indem direkt auf verschiedene Methoden verwiesen wird, indem deren Namen verwendet werden.
  • Optional: Dies ist eine spezielle Wrapper-Klasse, mit deren Hilfe optionale Features angegeben werden können.
  • Funktionsschnittstelle: Hierbei handelt es sich um eine Schnittstelle mit maximal einer abstrakten Methode, deren Implementierung vom Lambda-Ausdruck bereitgestellt wird
  • Nashorn Javascript Engine: Es handelt sich um eine Java-basierte Engine, die zum Ausführen und Auswerten von JavaScript-Code verwendet wird.

Q2. Ist es möglich, zwei Schnittstellen mit Standardmethode mit demselben Namen und derselben Signatur zu implementieren? Erklären Sie mit Beispiel.

Antworten:
Dies ist die grundlegende Frage zu Java 8-Vorstellungsgesprächen, die in einem Interview gestellt wird. Betrachten Sie den folgenden Code, der zwei Schnittstellen implementiert
public interface DefaultMethodInterface (
default public void defaultMethod()(
System.out.println("I am in Default method Interface I");
)
)
public interface DefaultMethodInterface2 (
default public void defaultMethod()(
System.out.println("I am in Default method Interface II");
)
)
public class HelloJava8 implements DefaultMethodInterface, DefaultMethodInterface2 (
public static void main(String() args)(
DefaultMethodInterface defMethIn = new HelloJava();
defMethIn.defaultMethod();
)
)

Hier gibt der Compiler einen Fehler aus, der besagt, dass "Standardmethoden duplizieren". Daher ist es nicht möglich, zwei Schnittstellen mit demselben Namen und derselben Signatur zu implementieren.

Q3. Ist es möglich, eine eigene Funktionsschnittstelle zu definieren? Erläutern Sie die Regeln zum Definieren einer funktionalen Schnittstelle.

Antworten:
Es ist möglich, eigene Funktionsschnittstellen zu definieren. Ein Benutzer kann die @ FunctionalInterface-Annotation von Java SE 8 verwenden, um eine Schnittstelle als funktionale Schnittstelle zu markieren. Die folgenden Regeln müssen beim Erstellen einer funktionalen Schnittstelle beachtet werden.

  1. Es muss nur eine Schnittstelle mit nur einer abstrakten Methode definiert werden
  2. Mehr als abstrakte Methoden können nicht definiert werden
  3. Ein Benutzer sollte die Annotation @FunctionalInterface in der Schnittstellendefinition verwenden.
  4. Es können beliebig viele verschiedene Methoden wie die Standardmethode, die statische Methode usw. definiert werden.
  5. Wir können die Methode der java.lang.Object-Klasse als abstrakte Methode überschreiben und dies wird nicht als abstrakte Methode gezählt.

Fahren wir mit den nächsten Fragen zum Java 8-Interview fort.

Q4. Was ist in Java 8 optional? Erläutern Sie die Vorteile.

Antworten:
Optional ist eine letzte Klasse, die als Teil von Java SE 8 eingeführt wird. Sie ist Teil von java.util.package. Es kann verwendet werden, um optionale Werte darzustellen, die entweder existieren oder nicht existieren. Dies kann einen Wert als einen Wert oder einen Wert von Null haben. Wenn diese Klasse einen Wert enthält, erhalten wir den Wert, ansonsten erhalten wir nichts.
Die Hauptvorteile dieser Klasse sind, dass mit ihr Nullprüfungen und mit ihr NullPointerException vermieden werden können.

Q5. Wird der folgende Code ohne Fehler kompiliert?

Antworten:
@FunctionalInterface
public interface Function2 (
public V apply(T t, U u);
default void count() (
// increment counter
)
)

Ja, dieser Code wird fehlerfrei kompiliert, da er der Regel der funktionalen Schnittstellenspezifikation folgt, dass nur eine einzige abstrakte Methode definiert wird. Die zweite verwendete Methode ist eine Standardmethode, die die Anzahl der abstrakten Methoden nicht erhöht.

Teil 2 - Fragen zu Java 8 Server-Vorstellungsgesprächen (Fortgeschrittene)

Werfen wir jetzt einen Blick auf die erweiterten Fragen und Antworten zu Java 8-Vorstellungsgesprächen

Q6. Was ist Nashorn in Java?

Antworten:
Dies ist die neue Java-Verarbeitungsengine für die Java-Plattform, die in Java 8 ausgeliefert wird. Bis JDK 7 Java Platform verwendete Rhino als Verarbeitungsengine. Es war eine Javascript-Verarbeitungsmaschine. Nashorn bietet eine bessere Konformität mit der ECMA-normierten JavaScript-Spezifikation. Es bietet auch eine bessere Laufzeitleistung als seine Vorgängerversionen.

Q7. Was ist der Unterschied zwischen Prädikat und Funktion?

Antworten:
Beides sind funktionale Schnittstellen. Ein Prädikat ist eine einzelne Argumentfunktion, die entweder true oder false zurückgibt. Dieser Ausdruck kann als Zuweisungsziel für einen Lambda-Ausdruck oder eine beliebige Methodenreferenz verwendet werden.
Function ist ebenfalls eine Funktion mit einem einzigen Argument, der Unterschied besteht jedoch darin, dass sie ein Objekt zurückgibt. Hier steht T für die Eingabe in die Funktion und R für die Art des Ergebnisses. Beide können als Zuweisungsziel für Lambda-Ausdrücke oder Methodenreferenzen verwendet werden.

Fahren wir mit den nächsten Fragen zum Java 8-Interview fort.

Q8. Erläutern Sie den Unterschied zwischen Zwischen- und Endoperationen.

Antworten:
Stream-Operationen werden verwendet, um Streams zu verarbeiten und zu kombinieren. Alle diese Operationen sind entweder Zwischen- oder Endoperationen. Zwischenoperationen geben den Stream selbst zurück und ermöglichen weitere Operationen, wenn sie ausgeführt werden sollen. Diese Vorgänge werden nicht gleichzeitig ausgeführt. Diese Operationen können nur ausgeführt werden, um Daten zu verarbeiten, wenn eine Terminaloperation vorliegt. Um nur einige Operationen zu nennen: Filter, Karte und flache Karte.
Terminaloperationen beenden die Pipeline und leiten die Stream-Verarbeitung ein. Dieser Strom wird während des Terminalbetriebs durch alle Zwischenoperationen geleitet. Diese Operationen umfassen für jedes, Reduzieren, Sammeln, Summieren usw.

Q9. Was ist Stream-Pipelining in Java 8?

Antworten:
Dies ist Java 8 für Fortgeschrittene. In einem Interview gestellte Fragen. Es ist das Konzept der Verkettung von Operationen. Dieser Vorgang erfolgt durch Aufteilen von Vorgängen, die mit Streams mit zwei Kategorien von Zwischen- und Terminalvorgängen arbeiten können. Jede Zwischenoperation gibt beim Ausführen eine Instanz eines Streams zurück. Es muss auch eine Terminal-Operation geben, die einen Endwert zurückgibt und die Pipeline beendet.

Q10. Was ist StringJoiner?

Antworten:
StringJoiner ist eine util-Methode, mit der verschiedene Zeichenfolgen mit gewünschten Begrenzern erstellt werden. Es kann auch bei der Erstellung von durch Trennzeichen getrennten Folgen verschiedener Zeichen hilfreich sein. Dies wurde in Java 8 eingeführt. Die verschiedenen Konstruktoren sind Public StringJoiner (CharSequence Delimiter) und Public StringJoiner (CharSequence Delimiter, CharSequence Prefix, CharSequence Suffix) .Below ist ein Beispiel für StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Empfohlener Artikel

Dies ist eine Anleitung zur Auflistung der Fragen und Antworten zu Java 8-Vorstellungsgesprächen, damit der Kandidat diese Java 8-Interviewfragen problemlos durchgreifen kann. Hier in diesem Beitrag haben wir uns mit den wichtigsten Fragen zu Java 8-Vorstellungsgesprächen befasst, die in Interviews häufig gestellt werden. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Fragen in Vorstellungsgesprächen zu Java Multi-Threading
  2. Fragen in Vorstellungsgesprächen bei Java EE
  3. Hoppla, Java-Interview-Fragen
  4. Fragen in Vorstellungsgesprächen bei Java Spring
  5. Was ist neu in Java 8?