Introduktion till Java 8 intervjufrågor och svar

Java 8 är en ny plattform som nyligen släpps med nya bibliotek och klasser. De flesta funktioner fokuserar på att ha en renare och kompakt kod. De nya funktionerna som läggs till i denna version kan listas som Lambda Expressions, metodreferenser, valfritt, funktionellt gränssnitt och standardmetoder, Nashorn, Stream och Date API. Behovet av förändring i Java var att utnyttja aktuella flerkärniga CPU: er effektivt och att använda FP-funktioner.

Nedan följer den viktigaste frågan i intervjun:

Om du nu letar efter ett jobb som är relaterat till Java 8 måste du förbereda dig för intervjufrågorna Java 8 från 2019. Det är sant att varje intervju är olika enligt de olika jobbprofilerna. Här har vi förberett viktiga intervjufrågor och svar på Java 8 som hjälper dig att få framgång i din intervju. Dessa intervjufrågor är indelade i två delar är följande:

Del 1 - Java 8 intervjufrågor (grundläggande)

Den första delen täcker grundläggande intervjufrågor och svar på Java 8

Q1. Hur skiljer Java 8 sig från tidigare Java-versioner?

Svar:
Olika Java-versioner är följande:

  • Date API: Det är ett förbättrat API som är oföränderligt JodaTime-inspirerat datum API.
  • Stream API: Detta är en speciell iteratorklass som hjälper till att behandla insamling av objekt på ett funktionellt sätt.
  • Lambda Expression: Detta är en ny språkfunktion som gör det möjligt att behandla olika åtgärder som utförs som objekt.
  • Metodreferens: Detta hjälper till att definiera Lambda-uttryck genom att hänvisa till olika metoder direkt genom att använda deras namn.
  • Valfritt: Detta är en speciell omslagsklass som hjälper dig att specificera valfria funktioner.
  • Funktionellt gränssnitt: Detta är ett gränssnitt med maximalt en abstrakt metod och dess implementering tillhandahålls av Lambda-uttrycket
  • Nashorn Javascript Engine: Det är en Java-baserad motor som används för att köra och utvärdera JavaScript-kod.

Q2. Är det möjligt att implementera två gränssnitt med standardmetod med samma namn och signatur? Förklara med exempel.

Svar:
Detta är de grundläggande intervjufrågorna från Java 8 som ställs i en intervju. Tänk på följande kod med två gränssnitt
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();
)
)

Här ger kompilatorn ett fel med att säga att "Duplicate Standard Methods". Därför är det inte möjligt att implementera två gränssnitt med samma namn och signatur.

Q3. Är det möjligt att definiera vårt eget funktionella gränssnitt? Förklara reglerna för att definiera ett funktionellt gränssnitt.

Svar:
Det är möjligt att definiera våra egna funktionella gränssnitt. En användare kan använda Java SE 8: s @FunctionalInterface-kommentar för att markera ett gränssnitt som funktionellt gränssnitt. Följande regler måste ha i åtanke när du skapar ett funktionellt gränssnitt.

  1. Endast ett gränssnitt måste definieras med endast en abstrakt metod
  2. Mer än abstrakta metoder kan inte definieras
  3. En användare bör använda @FunctionalInterface-kommentarer i gränssnittsdefinitionen.
  4. Vilket antal olika metoder som standardmetoden, den statiska metoden etc. kan definieras.
  5. Vi kan åsidosätta java.lang.Object klassens metod som en abstrakt metod och detta räknas inte som en abstrakt metod.

Låt oss gå till nästa intervjufrågor om Java 8.

Q4. Vad är valfritt i Java 8? Förklara fördelarna.

Svar:
Valfritt är en sista klass som introduceras som en del av Java SE 8. Det är en del av java.util.package. Det kan användas för att representera valfria värden som antingen finns eller inte finns. Detta kan ha värde som ett värde eller nollvärde. Om den här klassen innehåller ett värde får vi värdet annars får vi ingenting.
De viktigaste fördelarna med denna klass är att det kan användas för att undvika nollkontroller och den kan användas för att undvika "NullPointerException".

Q5. Kommer koden nedan att sammanställas utan fel?

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

Ja, den här koden kommer att sammanställas utan fel eftersom den följer regeln för funktionell gränssnittsspecifikation för att bara definiera en enda abstrakt metod. Den andra metoden som används är en standardmetod som inte ökar antalet abstrakta metoder.

Del 2 - Java 8 Serverintervjufrågor (avancerat)

Låt oss nu titta på de avancerade intervjufrågorna och svaren på Java 8

Q6. Vad är Nashorn i Java?

Svar:
Detta är den nya Java-behandlingsmotorn för Java-plattformen som skickas i Java 8. Tills JDK 7 Java-plattformen använde Rhino som bearbetningsmotor. Det var en Javascript-bearbetningsmotor. Nashorn ger bättre överensstämmelse med ECMA-normaliserade JavaScript-specifikationer. Det ger också bättre körningsprestanda än tidigare versioner.

Q7. Vad är skillnaden mellan Predikat och funktion?

Svar:
Båda är funktionella gränssnitt. Ett predikat är en enda argumentfunktion som returnerar antingen sant eller falskt. Detta uttryck kan användas som ett uppdragsmål för lambda-uttryck eller vilken metodreferens som helst.
Funktion är också en enda argumentfunktion men skillnaden här är att den returnerar ett objekt. Här representerar T ingång till funktionen och R representerar typen av resultat. Båda dessa kan användas som ett uppdragsmål för lambda-uttryck eller metodreferenser.

Låt oss gå till nästa intervjufrågor om Java 8.

Q8. Förklara skillnaden mellan mellan- och terminaloperationer.

Svar:
Strömoperationer används för att bearbeta strömmar och kombinera dem. Alla dessa operationer är antingen mellanliggande eller terminal. Mellanoperationer returnerar själva strömmen och tillåter ytterligare operationer om de ska utföras. Dessa operationer utförs inte samtidigt. Dessa operationer kan endast utföras för att bearbeta data när det finns en terminaloperation. För att nämna några operationer är de filter, karta och platt karta.
Terminaloperationer avslutar rörledningen och initierar strömbehandling. Denna ström passeras genom alla mellanoperationer under terminaldrift. Dessa operationer inkluderar för varje, reducera, samla in, summa etc.

Q9. Vad är strömledningar i Java 8?

Svar:
Detta är avancerad Java 8 intervjufrågor som ställs i en intervju. Det är begreppet kedjedrift tillsammans. Denna process görs genom att dela operationer som kan arbeta med strömmar med två kategorier av mellan- och terminaloperationer. Varje mellanoperation returnerar en instans av en ström när den körs. Det måste också finnas en terminaloperation som kommer att returnera ett slutligt värde och avslutar rörledningen.

Q10. Vad är StringJoiner?

Svar:
StringJoiner är en användningsmetod som används för att konstruera olika strängar med önskade avgränsare. Det kan också hjälpa till att skapa sekvenser av olika tecken separerade av avgränsare. Detta introducerades i Java 8. De olika konstruktörerna är Public StringJoiner (CharSequence-avgränsare) och Public StringJoiner (CharSequence-avgränsare, CharSequence-prefix, CharSequence-suffix). Nedan är ett exempel på StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Rekommenderad artikel

Detta har varit en guide till listan över intervjufrågor och svar på Java 8 så att kandidaten enkelt kan slå samman dessa Java 8 intervjufrågor. Här i det här inlägget har vi studerat de bästa Java 8 intervjufrågorna som ofta ställs i intervjuer. Du kan också titta på följande artiklar för att lära dig mer -

  1. Java-intervjuer med flera trådar
  2. Java EE intervjufrågor
  3. Oj, Java-intervjufrågor
  4. Java vårintervjufrågor
  5. Vad är nytt i Java 8?