35 + Java 8 interviewspørgsmål og svar (2025)

Uanset om det er en tekniker eller en anden professionel, vil interviews altid sparke adrenalinen ud af nervøsitet. Men for at skille sig ud fra mængden er det vigtigt at finpudse dine færdigheder og satse på dine evner. Desuden at have hænderne på de ofte stillede Java 8 interviewspørgsmål og svar kan være din kloge.

Grav derfor dybt ned i disse java 8-interviewspørgsmål til erfarne og begyndere for at få styr på dine kommende interviews.

Java 8 Interviewspørgsmål for nybegyndere og erfaring

1) Java 8 falder i hvilket programmeringsparadigme?

Java 8 falder i følgende programmeringsparadigme:

  • Objekt- eller klasseorienteret programmeringssprog.
  • Funktionelt programmeringssprog.
  • Specificeret proceduremæssigt programmeringssprog.
  • Logisk programmeringssprog.

2) Hvorfor skal man bruge Optional-klassen?

Valgfri klasse er en nyligt introduceret containerklasse, der er nyttig til at demonstrere eksisterende eller ikke-eksisterende valgfri værdier. Dens største fordel er at undgå null & void-tjek og letter metoder, der er nyttige til at kontrollere eksistensen af ​​en værdi for en bestemt variabel.


Java 8 interviewspørgsmål

3) Nævn nogle få seneste funktioner introduceret i Java 8.

Nedenfor er de seneste funktioner, som er introduceret i Java 8:

  • Lambda udtryk: Det er et Java funktion, som du kan dele eller henvise til som et objekt.
  • Metodeinterferens: Den bruger funktion som et kriterium til at implementere en metode.
  • Funktionel interferens: Enhver funktionel interferens er forbundet med en enkelt abstrakt metode, som er kendt som den funktionelle metode.
  • Standardmetode: Det er nyttigt til at implementere metoder i grænseflader, der hjælper med at aktivere 'grænsefladeevolution'-potentialet.
  • Dato Time API: Det er en forbedret, men inspireret version af java time API'er til at håndtere ulemperne ved den sidste version.
  • Stream API omtales som det abstrakte lag, som hjælper med at pipeline behandlingsdataene.
  • Valgfrit: Indpakningsklassen er nyttig til at kontrollere nulværdierne og behandle de yderligere data.
  • JavaScript og Nashorn Engine: Det er den forbedrede version af JavaScript Engine, som er nyttig til at aktivere dens funktionalitet i Java, der erstatter Rhino.

4) Angiv fordelene ved at bruge java 8

Her er nogle fordele ved at bruge Java 8:

  • Det hjælper med at skabe applikationer meget hurtigere og på en nemmere måde.
  • Det giver en meget stabil stemning for udviklerne.
  • Kortfattede, genbrugelige og letforståelige koder.
  • Forbedret og effektiv support.
  • Nem at overføre på tværs af forskellige operativsystemer.
  • Minimum kedel koder.

5) Hvad er en samling, og hvordan adskiller den sig fra en strøm?

En samling er en database i hukommelsen, der registrerer alle værdierne i henhold til den aktuelle datastruktur. Så før du tilføjer, føjer du det til samlingen, er det vigtigt at beregne hver af dem. Hvorimod en strøm er en visuelt fast datastruktur, hvor vi kan beregne elementerne efter vores behov.


6) Hvad er Lambada-udtrykket?

Lambada-udtryk er en slags funktion, der ikke har noget navn, og som nogle gange omtales som den anonyme funktion, fordi den ikke har sin egen type information. Du kan bruge det efter dit behov, og det er meget nyttigt til at gentage, filtrere og udtrække data fra samlingen.

Eksempel:

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

Output:

Charlie

7) Definer strømpipelining

Stream pipelining er en metode til at gruppere forskellige operationer helt. Du kan opnå dette ved at kategorisere dets stream-operationer i to dele. Mellem- og terminaloperationer.

Hver gang der udføres en mellemoperation, returnerer den en instans tilbage til strømrørledningen. Derfor kan enhver bruger oprette et irrationelt antal mellemliggende operationer for at strømline data og i sidste ende danne en behandlingspipeline.

For at afslutte rørledningerne er det desuden nødvendigt at have en terminaloperation i slutningen af ​​processen.


8) Hvad er prædikat og forbruger i Java 8?

Et prædikat er en funktionel grænseflade, der typisk modtager argumenter og henter en boolsk værdi. Du kan bruge det til at anvende filter for en samling af objekter.

På den anden side omtales forbrugeren som en indbygget funktionel grænseflade, der findes i Java.util.funktionspakke. Du kan bruge det til at forbruge ethvert objekt, og det tager inputværdien og giver intet ud.


9) Hvorfor bruges peek () metoden i Java 8?

Peek()-metoden hjælper med at understøtte debugging, hvor man ønsker at bemærke elementerne, da de har tendens til at flyde fra et bestemt punkt i en pipeline. Det er en repræsentation af vores observation af, hvordan hvert element passerer.

Syntaks: public Object peek()


10) Hvad gør dig til den ideelle kandidat til Java udvikler rolle?

Her er nogle vigtige egenskaber, der kan gøre dig til en ideel kandidat til Java udvikler rolle:

  • Du skal have evnen til at skrive klare, letforståelige og effektive koder.
  • En dyb forståelse af mønstrene og begreberne i "OOP eller objektorienteret programmering".
  • Et godt kendskab til forskellige arkitektoniske og designmæssige mønstre.
  • Kendskab til Java samtidighedsmønstre.
  • Erfaring og viden om at arbejde med forskellige webapplikations frameworks som f.eks Spark og leg.
  • Grundlæggende viden om Java Virtuel maskine eller JVM, dens ulemper, løsning osv.
  • En god erfaring med at bruge indlejrede og eksterne databaser.

11) Forklar 'Functional Interface'.

En grænseflade med kun ét abstrakt kaldes en funktionel grænseflade. Det er også kendt som Single Abstract Method eller SAM. Annotationen @FunctionalInterface er dog valgfri og kan bruges, selvom den ikke er der. Den strækker sig til den anden grænseflade, hvis den ikke har noget abstrakt.


12) Hvorfor er statiske metoder nødvendige i Java 8?

Statisk metodehenvisning omtales som en hjælpe- eller hjælpemetode, som er forbundet med en grænseflade. Det er også en klasse, der ikke er knyttet til noget objekt.

Her er grunde til at bruge den statiske metode i Java:

  • Nyttigt til at vedligeholde og udvide API.
  • Indebærer en klar og kortfattet ansvarsfordeling, og man behøver ikke have én brugsklasse for at have brugssamlingerne.
  • Nyttigt til at holde alle grænseflader i en fælles grænseflade i stedet for specifikke grænseflader.

13) Hvad er fordelene ved Nashorn?

Nashorn er den mest avancerede og nye JavaScript forarbejdningsmotor introduceret i Java 8. Tidligere var den baseret på Mozilla Rhino. Det giver øget overensstemmelse med ECMA JavaManuskript. Den er hurtigere end dens tidligere versioner.


14) Hvordan er Collection API og Stream API forskellige?

Her er nogle vigtige forskelle mellem Collection API og Stream API

Indsamling API Stream API
Collection API blev først brugt i Java 1.2 Stream API blev først introduceret i Java IF 8.
Du kan bruge det til at gemme ubegrænset data. Du kan bruge det til at beregne ubegrænset data.
Collection API giver dig mulighed for at bruge Iterator og Spilterator til at iterere dataene. Stream API giver dig mulighed for at bruge Iterator og Spilterator til at iterere dataene.
Collection API er let at få adgang til. In-stream API er der ingen direkte måde at nå specifikke elementer på.
Det gør det også nemt at behandle det efter dine behov. Stream API kan kun behandles én gang.

15) Beskriv PermGenSpace og MetaSpace.

PermGen eller Permanent Generation Space er en unik type heap space, der bruges til at holde styr på lagrede metadata, som nu er fjernet i Java 8.

Med denne nye version vil lagringen af ​​metadata ske i en lignende hukommelse kendt som "MetaSpace". Det er ikke en overførbar Java Heap memory og er en forbedret version af PermGen i aspekter af auto-tuning, affaldsopsamling osv.


16) Hvordan skabes funktionel grænseflade i Java 8?

Du kan anvende lambda-udtryk til at implementere den abstrakte metode for den funktionelle grænseflade i Java 8. Nedenfor er et kodningseksempel på det samme:

Eksempel

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

Output:

Hello, world!

17) Hvad er forskellene og lighederne mellem funktion og prædikat i Java 8?

Her er forskellene mellem funktion og prædikat i Java 8:

  • Funktion er nyttig i transformation, hvorimod prædikat kan bruges til at teste enhver betingelse.
  • Funktion kan modtage et argument og give et resultat, hvorimod prædikat også kan modtage et argument, men kun giver den boolske værdi.
  • Funktion er angivet med , og prædikat er kun angivet med , hvor T er funktionstypen, og R er resultatet.

Nedenfor er lighederne mellem funktion og prædikat:

  • Både funktion og prædikat er funktionelle grænseflader.
  • Både funktion og prædikat er enkeltargumentfunktioner.

18) Forklar forskellen mellem skip(lang) og grænse(lang) ved hjælp af et eksempel.

Overspringningen (lang) er en mellemoperation, der henter de resterende elementer efter at have elimineret de indledende n elementer i en specifik strøm.

Eksempel:

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

Output:

Charlie
Dave
Eve

Grænsen (lang) henter strømmen af ​​elementer af en bestemt størrelse

Eksempel:

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

Output:

AliceBob
Charlie

19) Hvilken situation er bedst egnet til at bruge stream API i Java 8?

Du kan bruge stream API i Java 8. Der er behov for nedenstående operationer:

  • Du kan udføre parallel behandling.
  • Til udførelse af doven operationer
  • For at udføre databaseoperationer
  • Bruges til interne iterationer.
  • Til at skrive programmering i funktionel stil
  • Du kan bruge til at bruge pipeline operationer.

20) Hvad er funktionen af ​​Typeinferens?

Type Inference hjælper compileren med at identificere eller genkende typerne af argumenter ved blot at have et overblik over den tilsvarende erklæring og metodekald.


21) Hvilken er den nemmeste måde at identificere og eliminere duplikerede elementer fra en liste i Java 8?

Den nemmeste måde at identificere og fjerne de duplikerede elementer på er ved at bruge stream-operationen og udføre en indsamling, efterfulgt af brugen af ​​Collections.toSet()-metoden.


22) Hvad er retningslinjerne for funktionelt interface?

Nedenfor er retningslinjerne for en funktionel grænseflade, som er blandt de mest efterspurgte Java 8 programmeringsspørgsmål:

  • Det bør kun have én abstrakt metode.
  • Du kan have så mange som et antal standardmetoder, da det ikke er abstrakt, og implementering er givet tidligere af samme.
  • En abstrakt metode, hovedelementet i offentlige metoder fra Java.lang, er kendt i en funktionel grænseflade. Objekt betragtes stadig som en nyttig grænseflade.

Bemærk: Forklaringen på dette er, at hver implementeringsklasse for denne grænseflade kan have en implementering til denne abstrakte metode, der enten er defineret af selve implementeringsklassen eller taget fra en superklasse.


23) skelne mellem splitter og iterator.

Her er nogle forskelle mellem splitter og iterator:

Splitterator iterator
Det blev introduceret i Java 1.2. Det blev introduceret i Java 1.8.
Det gentager kun alle elementerne separat. Det tværgående alle elementer separat såvel som i løs vægt.
Det fungerer som en iterator for en komplet samling af API'er. Det fungerer som en iterator for både stream og samling API.
Den understøtter ikke parallel programmering. Det understøtter parallel programmering.

24) Hvordan kan du kalde en standardmetode for en grænseflade i en klasse?

Standardnøgleordet, som er til stede i starten af ​​metodesignaturen, bruges til at udpege en metodeerklæring i en grænseflade som en standardmetode. Du kan springe den offentlige modifikator over, fordi hver metodeerklæring i en grænseflade, inklusive standardmetoder, automatisk er offentlige.


25) Definer standardmetoden. Hvornår kan du bruge det?

Standardmetoden er til stede i grænsefladen, og den inkluderer en implementering. Denne metode er nyttig til at tilføje ny funktionalitet til en given grænseflade, mens den bibeholder bagudkompatibiliteten sammen med dens klasser, der allerede er implementeret i en grænseflade.


26) Hvordan skabes streams i Java, og er det blandt de mest stillede spørgsmål til java 8 stream-interview?

Strømmer ind Java beskriv rækkefølgen af ​​objekter fra en specifik kilde, f.eks. en samling, der vil understøtte aggregerede operationer. Du kan bruge det til at indsamle, filtrere, udskrive og ændre en datastruktur til en anden.

Her er eksempler på, hvordan man opretter 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);
    }
}

Output:

Alice
Bob
Charlie
Dave
Eve

27) Hvad er Map- og FlatMap-stream-operationer?

Kort og FlatMap betragtes som de strøm- og mellemstrømsoperationer, der accepterer en funktion. Det hjælper også med at anvende den givne funktion på resten af ​​elementerne.


28) Hvorfor skal vi ændre Java programmeringssprog ofte?

Vi er nødt til at ændre Java programmeringssprog ofte på grund af nedenstående årsager:

  • Du kan bruge funktionerne i Funktionel programmering.
  • At udnytte den nyeste teknologi fra Multi-Core CPU'er effektivt.

29) Nævn nogle få funktionelle grænseflader brugt i Java 8.

Nedenfor er et par funktionelle grænseflader, der bruges i Java 8:

  • BinaryOperaTor
  • Forbruger
  • Funktion
  • Leverandør
  • UnærOperaTor
  • Bifunktion
  • Prædikat

30) Hvad er de vigtigste API-klasser for tid og dato?

Nedenfor er de vigtigste API-klasser for tid og dato, der bruges i Java 8:

  • Lokal tid
  • LocalDateTime
  • LocalDate

31) Angiv den grundlæggende struktur/syntaks for Lambda-udtryk.

Den grundlæggende struktur/syntaks af Lambda-udtryk er:

(arugument - list) - > {body}

Her,

  • Argument – ​​liste: Du kan holde den fyldt eller tom.
  • Pil-token: Det er nyttigt til at forbinde kropsudtryk og argumenter – liste.
  • Legeme: Den består af udsagn og udtryk for lambdaudtrykket.

32) Hvad er de vigtigste kendetegn ved Stream?

Nedenfor er de vigtigste egenskaber ved Stream:

  • pipelining
  • Kilde
  • Aggregate Operationer
  • Sekvens af elementer
  • Automatiske gentagelser

33) Hvad er de mest almindelige mellemliggende operationer?

Nogle af de mest almindelige typer mellemudtryk er:

  • Særskilt ()
  • Spring over (lang n)
  • Filter (prædikat)
  • Grænse (lang n)
  • Kort (funktion)

34) Hvad er de mest almindelige typer af terminaloperationer?

Nedenfor er de mest almindelige typer terminaloperationer:

  • Tælle
  • Reducer
  • Min
  • AllMatch
  • max
  • AnyMatch
  • Til Array

35) Hvad er metodehenvisning i Java 8?

Metode reference i Java 8 er en måde at henvise til den funktionelle grænseflade på. Det er kendt som en meget nemmere og mere effektiv form for lambda-udtryk. Når du bruger lambda-udtryk til at henvise til en metode, kan du erstatte den med metodereferencen.


36) Hvordan er interne og eksterne iterationer forskellige?

Nedenfor er forskellene mellem intern og ekstern iteration:

Intern iteration Ekstern iteration
Det er også kendt som den passive eller implicitte iterator. Det er også kendt som den aktive eller eksplicitte iterator.
Den bæres internt på forskellige genstande. Det bæres eksternt på forskellige genstande.
Det bruges i funktionel programmering. Det bruges i objektorienteret programmering.
Det tegner sig for meget færre fejl. Kodning er dog et must for det. Det tegner sig for flere fejl. Kodning er dog ikke nødvendig.

37) Er typeinferens blevet brugt i tidligere versioner af Java?

Java indført type interferens i Java 5 men med meget begrænset adgang. Men med årene er mulighederne for typeinterferens steget, og det er bedst i Java 8.


38) Skriv en ned Java 8 program, der kan finde en Streams minimum og maksimum 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);
    }
}

Output:

Minimum number: 1
Maximum number: 9

39) Hvordan forbinder man flere strenge gennem StringJoiner Class?

StringJoiner hjælper med at forbinde en eller flere String, og det kan gøres gennem en specifik joiner eller afgrænser. For eksempel kan man forbinde en række strenge ved at adskille dem med et komma (,).

For at oprette en CSV-streng kan man generere en fuld sti til en bestemt mappe i Linux, hvilket kan gøres ved at forbinde strengen ved hjælp af skråstregen "/."


40) Hvad er det bedste alternativ til lambda-udtryk i Java 8?

Generelt bruger vi lambda-udtryk til at skabe anonyme metoder, der hjælper med at få det ønskede output. Der er dog tilfælde, hvor lambda-udtryk ikke virker og kun bruger en eksisterende metode.

Så for at undgå dette kan du bruge metodereference, der kan hjælpe med at få det ønskede output. Metodereferencen er afbildet ved hjælp af symbolet: (dobbeltkolon).