35+ Java 8 intervjufrågor och svar (2025)

Oavsett om det är en tekniker eller någon annan professionell, intervjuer sparkar alltid adrenalinet av nervositet. Men för att sticka ut från mängden är det viktigt att polera dina färdigheter och satsa på dina förmågor. Dessutom att ha händerna på de ofta frågade Java 8 intervjufrågor och svar kan vara din smartare.

Gräv därför djupt i dessa java 8-intervjufrågor för erfarna och nybörjare för att klara dina kommande intervjuer.

Java 8 Intervjufrågor för nybörjare och erfarenhet

1) Java 8 faller i vilket programmeringsparadigm?

Java 8 faller i följande programmeringsparadigm:

  • Objekt- eller klassorienterat programmeringsspråk.
  • Funktionellt programmeringsspråk.
  • Specificerat procedurprogrammeringsspråk.
  • Logiskt programmeringsspråk.

2) Varför ska man använda Optional-klassen?

Valfri klass är en nyligen introducerad containerklass som är användbar för att demonstrera befintliga eller icke-existerande valfria värden. Dess största fördel är att undvika null & void-kontroller och underlättar metoder användbara för att kontrollera förekomsten av ett värde för en viss variabel.


Java 8 intervjufrågor

3) Nämn några nya funktioner som introducerats i Java 8.

Nedan är de senaste funktionerna som introduceras i Java 8:

  • Lambdauttryck: Det är ett Java funktion som du kan dela eller referera till som ett objekt.
  • Metodinterferens: Den använder funktion som ett kriterium för att implementera en metod.
  • Funktionell störning: Varje funktionell störning är associerad med en enda abstrakt metod som är känd som den funktionella metoden.
  • Standardmetod: Det är användbart för att implementera metoder i gränssnitten som hjälper till att möjliggöra "gränssnittsutveckling"-potentialen.
  • Datum Tid API: Det är en förbättrad men inspirerad version av Java Time API:er för att hantera nackdelarna med den senaste versionen.
  • Stream API kallas det abstrakta lagret, som hjälper till att pipeline bearbetningsdata.
  • Frivillig: Omslagsklassen är användbar för att kontrollera nollvärdena och bearbeta ytterligare data.
  • JavaManus och Nashorn Engine: Det är den förbättrade versionen av JavaScript Engine, som är användbar för att aktivera dess funktionalitet i Java, som ersätter Rhino.

4) Specificera fördelarna med att använda java 8

Här är några fördelar med att använda Java 8:

  • Det hjälper till att skapa applikationer mycket snabbare och på ett enklare sätt.
  • Det ger en mycket stabil miljö för utvecklarna.
  • Kortfattade, återanvändbara och lättförståeliga koder.
  • Förbättrat och effektivt stöd.
  • Lätt att porta över olika operativsystem.
  • Minsta pannkod.

5) Vad är en samling och hur skiljer den sig från en ström?

En samling är en databas i minnet som registrerar alla värden enligt den aktuella datastrukturen. Så innan du lägger till det i samlingen är det viktigt att beräkna var och en av dem. Medan en ström är en visuellt fixerad datastruktur där vi kan beräkna elementen enligt våra behov.


6) Vad är Lambada-uttrycket?

Lambada-uttryck är en sorts funktion som inte har något namn och som ibland kallas den anonyma funktionen eftersom den inte har sin egen typ av information. Du kan använda det enligt dina behov, och det är mycket användbart för att repetera, filtrera och extrahera all data från samlingen.

Exempelvis:

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);
    }
}

Produktion:

Charlie

7) Definiera ström pipelining

Stream pipelining är en metod för att gruppera olika operationer helt och hållet. Du kan uppnå detta genom att kategorisera dess strömningsverksamhet i två delar. Mellan- och terminalverksamhet.

Närhelst en mellanoperation utförs studsar den tillbaka en instans till strömledningen. Därför kan vilken användare som helst ställa in ett irrationellt antal mellanliggande operationer för att effektivisera data och slutligen bilda en bearbetningspipeline.

Dessutom, för att avsluta rörledningarna, är det nödvändigt att ha en terminaloperation i slutet av processen.


8) Vad är predikat och konsument i Java 8?

Ett predikat är ett funktionellt gränssnitt som vanligtvis tar emot argument och hämtar ett booleskt värde. Du kan använda den för att tillämpa filter för en samling objekt.

Å andra sidan hänvisas konsumenten till som ett inbyggt funktionellt gränssnitt som finns i Java.util.funktionspaket. Du kan använda den för att konsumera vilket objekt som helst, och den tar ingångsvärdet och ger ingenting ut.


9) Varför används peek ()-metoden i Java 8?

Peek()-metoden hjälper till att stödja felsökning, där man vill lägga märke till elementen när de tenderar att flöda från en specifik punkt i en pipeline. Det är en representation av vår observation av hur varje element passerar.

Syntax: public Object peek()


10) Vad gör dig till den idealiska kandidaten för Java utvecklarroll?

Här är några viktiga egenskaper som kan göra dig till en idealisk kandidat för Java utvecklarroll:

  • Du bör ha förmågan att skriva tydliga, lättförståeliga och effektiva koder.
  • En djup förståelse för mönstren och begreppen för "OOP eller objektorienterad programmering. "
  • God kunskap om olika arkitektur- och designmönster.
  • Känner till Java samtidighetsmönster.
  • Erfarenhet och kunskap av att arbeta med olika webbapplikationsramverk som t.ex Spark och spela.
  • Grundläggande kunskap om Java Virtuell maskin eller JVM, dess nackdelar, lösning, etc.
  • En god erfarenhet av att använda inbäddade och externa databaser.

11) Förklara det "funktionella gränssnittet".

Ett gränssnitt med bara ett abstrakt kallas ett funktionellt gränssnitt. Det är också känt som Single Abstract Method eller SAM. Anteckningen @FunctionalInterface är dock valfri och kan användas även om den inte finns där. Det sträcker sig till det andra gränssnittet om det inte har något abstrakt.


12) Varför behövs statiska metoder i Java 8?

Statisk metodreferens hänvisas till som en verktygs- eller hjälpmetod, som är länkad till ett gränssnitt. Det är också en klass som inte är kopplad till något objekt.

Här är skälen till att använda den statiska metoden i Java:

  • Användbar för att underhålla och utöka API:et.
  • Medför en tydlig och kortfattad ansvarsandel och du behöver inte ha en bruksklass för att ha brukssamlingarna.
  • Användbart för att hålla alla gränssnitt i ett gemensamt gränssnitt snarare än specifika gränssnitt.

13) Vilka är fördelarna med Nashorn?

Nashorn är den mest avancerade och nya JavaScript bearbetningsmotor introducerad i Java 8. Tidigare var den baserad på Mozilla Rhino. Det ger förbättrad överensstämmelse med ECMA JavaManus. Det är snabbare än sina tidigare versioner.


14) Hur skiljer sig Collection API och Stream API?

Här är några viktiga skillnader mellan Collection API och Stream API

Insamlings-API Stream API
Collection API användes först i Java 1.2 Stream API introducerades först i Java IF 8.
Du kan använda den för att lagra obegränsad data. Du kan använda den för att beräkna obegränsad data.
Collection API låter dig använda Iterator och Spilterator för att iterera data. Stream API låter dig använda Iterator och Spilterator för att iterera data.
Collection API är lätt att komma åt. In-stream API, det finns inget direkt sätt att nå specifika element.
Det gör det också lätt att bearbeta det efter dina behov. Stream API kan bearbetas bara en gång.

15) Beskriv PermGenSpace och MetaSpace.

PermGen eller Permanent Generation Space är en unik typ av heapspace som används för att hålla reda på lagrad metadata som nu tas bort i Java 8.

Med den här nya versionen kommer lagringen av metadata att göras i ett liknande minne som kallas "MetaSpace". Det är inte en överlåtbar Java Heap-minne och är en förbättrad version av PermGen i aspekter av auto-tuning, sophämtning, etc.


16) Hur skapas funktionellt gränssnitt i Java 8?

Du kan använda lambda-uttryck för att implementera den abstrakta metoden för det funktionella gränssnittet i Java 8. Nedan är ett kodningsexempel på detsamma:

Exempelvis

import java.util.function.Consumer;
public class FunctionalInterfaceExample {
    public static void main(String[] args) {
        Consumer<String> printer = System.out::println;
        printer.accept("Hello, world!");
    }
}

Produktion:

Hello, world!

17) Vilka är skillnaderna och likheterna mellan Funktion och Predikat i Java 8?

Här är skillnaderna mellan funktion och predikat i Java 8:

  • Funktion är användbar vid transformation, medan predikat kan användas för att testa vilket villkor som helst.
  • Funktion kan ta emot ett argument och ge ut ett resultat, medan predikat också kan ta emot ett argument men ger bara ut det booleska värdet.
  • Funktionen betecknas med , och Predikat betecknas endast med , där T är funktionstypen och R är resultatet.

Nedan är likheterna mellan funktion och predikat:

  • Både funktion och predikat är funktionella gränssnitt.
  • Både funktion och predikat är enstaka argumentfunktioner.

18) Förklara skillnaden mellan skip(long) och limit(long) med hjälp av ett exempel.

Överhoppningen (lång) är en mellanoperation som hämtar de överblivna elementen efter att ha eliminerat de första n elementen i en specifik ström.

Exempelvis:

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);
    }
}

Produktion:

Charlie
Dave
Eve

Gränsen (lång) hämtar strömmen av element av en viss storlek

Exempelvis:

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);
    }
}

Produktion:

AliceBob
Charlie

19) Vilken situation är mest lämplig för att använda stream API i Java 8?

Du kan använda stream API i Java 8. Det finns ett behov av följande operationer:

  • Du kan utföra parallell bearbetning.
  • För att utföra lättjefulla operationer
  • För att utföra databasoperationer
  • Använd för interna iterationer.
  • För att skriva programmering i funktionell stil
  • Du kan använda för att använda pipelineoperationer.

20) Vilken funktion har typinferens?

Typinferens hjälper kompilatorn att identifiera eller känna igen typerna av argument genom att bara ha en översikt över motsvarande deklaration och metodanrop.


21) Vilket är det enklaste sättet att identifiera och eliminera duplicerade element från en lista i Java 8?

Det enklaste sättet att identifiera och ta bort dubblettelementen är genom att använda stream-operationen och utföra en insamling, följt av användningen av metoden Collections.toSet().


22) Vilka är riktlinjerna för funktionellt gränssnitt?

Nedan följer riktlinjerna för ett funktionellt gränssnitt som är bland de mest efterfrågade Java 8 programmeringsfrågor:

  • Det bör bara ha en abstrakt metod.
  • Du kan ha så många som ett antal standardmetoder eftersom det inte är abstrakt, och implementeringen ges tidigare av densamma.
  • En abstrakt metod, huvudelementet i offentliga metoder från Java.lang, är känt i ett funktionellt gränssnitt. Objekt betraktas fortfarande som ett användbart gränssnitt.

Notera: Förklaringen till detta är att varje implementeringsklass för detta gränssnitt kan ha en implementering för denna abstrakta metod som antingen är definierad av själva implementeringsklassen eller hämtad från en superklass.


23) Gör skillnad på spliterator och iterator.

Här är några skillnader mellan spliterator och iterator:

Splitterator iterator
Det introducerades i Java 1.2. Det introducerades i Java 1.8.
Den itererar bara alla element separat. Den tvärs över alla element separat såväl som i bulk.
Den fungerar som en iterator för en komplett samling av API:er. Det fungerar som en iterator för både stream- och samlings-API.
Det kommer inte att stödja parallell programmering. Den stöder parallell programmering.

24) Hur kan du anropa en standardmetod för ett gränssnitt i en klass?

Standardnyckelordet, som finns i början av metodsignaturen, används för att ange en metoddeklaration i ett gränssnitt som en standardmetod. Du kan hoppa över den offentliga modifieraren eftersom varje metoddeklaration i ett gränssnitt, inklusive standardmetoder, automatiskt är offentliga.


25) Definiera standardmetoden. När kan du använda den?

Standardmetoden finns i gränssnittet och den inkluderar en implementering. Denna metod är till hjälp för att lägga till ny funktionalitet till ett givet gränssnitt samtidigt som bakåtkompatibiliteten bibehålls tillsammans med dess klasser som redan är implementerade i ett gränssnitt.


26) Hur skapas strömmar i Java, och är det bland de mest ställda intervjufrågorna för java 8 stream?

Strömmar in Java beskriv sekvensen av objekt från en specifik källa, som en samling, som kommer att stödja aggregerade operationer. Du kan använda den för att samla in, filtrera, skriva ut och ändra en datastruktur till en annan.

Här är exempel på hur man skapar streams i 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);
    }
}

Produktion:

Alice
Bob
Charlie
Dave
Eve

27) Vad är Map och FlatMap stream operationer?

Karta och FlatMap betraktas som strömnings- och mellanflödesoperationer som accepterar en funktion. Det hjälper också till att tillämpa den givna funktionen på resten av elementen.


28) Varför behöver vi ändra Java programmeringsspråk ofta?

Vi måste ändra Java programmeringsspråk ofta på grund av följande skäl:

  • Du kan använda funktionerna i Funktionell programmering.
  • För att effektivt använda den senaste tekniken för Multi-Core-processorer.

29) Nämn några funktionella gränssnitt som används i Java 8.

Nedan finns några funktionella gränssnitt som används i Java 8:

  • BinaryOperator
  • konsumenten
  • Funktion
  • Leverantör
  • unärOperator
  • BiFunction
  • Predikat

30) Vilka är de viktigaste API-klasserna för tid och datum?

Nedan listas de viktigaste API-klasserna för tid och datum som används i Java 8:

  • Lokal tid
  • LocalDateTime
  • LocalDate

31) Ge den grundläggande strukturen/syntaxen för Lambda-uttryck.

Den grundläggande strukturen/syntaxen för Lambda-uttryck är:

(arugument - list) - > {body}

Här,

  • Argument – ​​lista: Du kan hålla den fylld eller tom.
  • Piltoken: Det är användbart för att länka samman kroppsuttryck och argument – ​​lista.
  • Kropp: Den består av påståenden och uttryck för lambdauttrycket.

32) Vilka är de viktigaste egenskaperna hos Stream?

Nedan är de viktigaste egenskaperna hos Stream:

  • pipelining
  • Källa
  • Aggregate Operationer
  • Sekvens av element
  • Automatiska iterationer

33) Vilka är de vanligaste mellanoperationerna?

Några av de vanligaste typerna av mellanuttryck är:

  • Distinkt ()
  • Hoppa över (långt n)
  • Filter (predikat)
  • Gräns ​​(långt n)
  • Karta (funktion)

34) Vilka är de vanligaste typerna av terminaloperationer?

Nedan är de vanligaste typerna av terminaloperationer:

  • Att Räkna
  • Minska
  • Min
  • AllMatch
  • Max
  • AnyMatch
  • Till Array

35) Vad är metodreferens i Java 8?

Metodreferens i Java 8 är ett sätt att hänvisa till det funktionella gränssnittet. Det är känt som en mycket enklare och effektivare form av lambda-uttryck. När du använder lambda-uttryck för att referera till en metod kan du ersätta den med metodreferensen.


36) Hur skiljer sig interna och externa iterationer?

Nedan är skillnaderna mellan intern och extern iteration:

Intern iteration Extern iteration
Det är också känt som den passiva eller implicita iteratorn. Det är också känt som den aktiva eller explicita iteratorn.
Den bärs internt på olika föremål. Den bärs externt på olika föremål.
Det används i funktionell programmering. Det används i objektorienterad programmering.
Det står för mycket mindre fel. Men kodning är ett måste för det. Det står för fler fel. Kodning är dock inte nödvändig.

37) Har typinferens använts i tidigare versioner av Java?

Java infört typinterferens i Java 5 men med mycket begränsad tillgång. Men med åren har möjligheterna till typstörningar ökat, och det är som bäst i Java 8.


38) Skriv ner a Java 8-program som kan hitta en Streams lägsta och högsta antal.

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);
    }
}

Produktion:

Minimum number: 1
Maximum number: 9

39) Hur går man med i flera strängar genom StringJoiner Class?

StringJoiner hjälper till att gå med i en eller flera strängar, och det kan göras genom en specifik joiner eller avgränsare. Till exempel kan man sammanfoga ett antal strängar genom att separera dem med ett kommatecken (,).

För att skapa en CSV-sträng kan man generera en fullständig sökväg för en viss katalog i Linux, vilket kan göras genom att ansluta strängen med hjälp av snedstrecket "/."


40) Vilket är det bästa alternativet till lambda-uttryck i Java 8?

I allmänhet använder vi lambda-uttryck för att skapa anonyma metoder som hjälper till att få önskad utdata. Det finns dock fall där lambda-uttryck inte fungerar och endast använder en befintlig metod.

Så för att undvika detta kan du använda metodreferens som kan hjälpa dig att få önskad utdata. Metodreferensen avbildas med symbolen: (dubbelt kolon).