35 + Java 8 intervjuspørsmål og svar (2026)
Enten det er en tekniker eller en annen profesjonell, intervjuer sparker alltid adrenalinet ut av nervøsitet. For å skille seg ut fra mengden er det imidlertid viktig å finpusse ferdighetene dine og satse på evnene dine. Dessuten har hendene på de ofte spurte Java 8 intervjuspørsmål og svar kan hjelpe deg.
Grav derfor dypt inn i disse java 8-intervjuspørsmålene for erfarne og nybegynnere for å oppnå de kommende intervjuene dine.
Java 8 Intervjuspørsmål for ferskinger og erfaring
1) Java 8 faller i hvilket programmeringsparadigme?
Java 8 faller i følgende programmeringsparadigme:
- Objekt- eller klasseorientert programmeringsspråk.
- Funksjonelt programmeringsspråk.
- Spesifisert prosedyrespråk.
- Logisk programmeringsspråk.
2) Hvorfor bør man bruke Optional-klassen?
Valgfri klasse er en nylig introdusert containerklasse som er nyttig for å demonstrere eksisterende eller ikke-eksisterende valgfrie verdier. Dens største fordel er å unngå null & void-kontroller og forenkler metoder som er nyttige for å kontrollere eksistensen av en verdi for en bestemt variabel.

3) Nevn noen nyere funksjoner introdusert i Java 8.
Nedenfor er de nyeste funksjonene som er introdusert i Java 8:
- Lambda-uttrykk: Det er en Java funksjon som du kan dele eller referere til som et objekt.
- Metodeinterferens: Den bruker funksjon som et kriterium for å implementere en metode.
- Funksjonell interferens: Hver funksjonell interferens er assosiert med en enkelt abstrakt metode som er kjent som den funksjonelle metoden.
- Standardmetode: Det er nyttig for å implementere metoder i grensesnittene som bidrar til å aktivere "grensesnittevolusjonspotensialet".
- Dato Tid API: Det er en forbedret, men inspirert versjon av java time APIer for å håndtere ulempene med den siste versjonen.
- Stream-API refereres til som det abstrakte laget, som hjelper til med å pipeline prosessdataene.
- Valgfritt: Wrapper-klassen er nyttig for å sjekke nullverdiene og behandle de ytterligere dataene.
- JavaScript og Nashorn Engine: Det er den forbedrede versjonen av JavaScript Engine, som er nyttig for å aktivere funksjonaliteten i Java, erstatter Rhino.
4) Spesifiser fordelene ved å bruke java 8
Her er noen fordeler ved å bruke Java 8:
- Det hjelper med å lage applikasjoner mye raskere og på en enklere måte.
- Det gir en veldig stabil atmosfære for utviklerne.
- Kortfattede, gjenbrukbare og lettfattelige koder.
- Forbedret og effektiv støtte.
- Enkel å portere på tvers av ulike operativsystemer.
- Minimum boilerplate koder.
5) Hva er en samling, og hvordan er den forskjellig fra en strøm?
En samling er en database i minnet som registrerer alle verdiene i henhold til gjeldende datastruktur. Så før du legger den til i samlingen, er det viktig å beregne hver av dem. Mens en strøm er en visuelt fast datastruktur der vi kan beregne elementene i henhold til våre behov.
6) Hva er Lambada-uttrykket?
Lambada-uttrykk er en slags funksjon som ikke har noe navn og blir noen ganger referert til som den anonyme funksjonen fordi den ikke har sin egen type informasjon. Du kan bruke det etter behov, og det er veldig nyttig for å gjenta, filtrere og trekke ut 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);
}
}
Utgang:
Charlie
7) Definer strømrørledning
Strømrørledning er en metode for å gruppere forskjellige operasjoner totalt. Du kan oppnå dette ved å kategorisere strømoperasjonene i to deler. Mellom- og terminaloperasjoner.
Hver gang en mellomoperasjon utføres, spretter den tilbake en forekomst til strømrørledningen. Derfor kan enhver bruker sette opp et irrasjonelt antall mellomoperasjoner for å strømlinjeforme data og til slutt danne en behandlingspipeline.
Dessuten, for å avslutte rørledningene, er det nødvendig å ha en terminaloperasjon på slutten av prosessen.
8) Hva er predikat og forbruker i Java 8?
Et predikat er et funksjonelt grensesnitt som vanligvis mottar argumenter og henter en boolsk verdi. Du kan bruke den til å bruke filter for en samling av objekter.
På den annen side blir forbrukeren referert til som et innebygd funksjonelt grensesnitt som finnes i Java.util.function-pakke. Du kan bruke den til å konsumere hvilken som helst gjenstand, og den tar inngangsverdien og gir ingenting.
9) Hvorfor brukes peek ()-metoden i Java 8?
Peek()-metoden hjelper til med å støtte feilsøking, der man ønsker å legge merke til elementene når de har en tendens til å strømme fra et spesifikt punkt i en rørledning. Det er en representasjon av vår observasjon av hvordan hvert element passerer.
Syntaks: public Object peek()
10) Hva gjør deg til den ideelle kandidaten for Java utviklerrolle?
Her er noen viktige egenskaper som kan gjøre deg til en ideell kandidat for Java utviklerrolle:
- Du bør ha evnen til å skrive klare, enkle å forstå og effektive koder.
- En dyp forståelse av mønstrene og konseptene til "OOP eller objektorientert programmering».
- God kunnskap om ulike arkitektoniske og designmønstre.
- Kjennskap til Java samtidighetsmønstre.
- Erfaring og kunnskap om arbeid med ulike nettapplikasjonsrammeverk som f.eks Spark og Spill.
- Grunnleggende kunnskap om Java Virtuell maskin eller JVM, dens ulemper, løsning osv.
- God erfaring med bruk av innebygde og eksterne databaser.
11) Forklar 'Funksjonelt grensesnitt'.
Et grensesnitt med bare ett abstrakt kalles et funksjonelt grensesnitt. Det er også kjent som Single Abstract Method eller SAM. Merknaden @FunctionalInterface er imidlertid valgfri og kan brukes selv om den ikke er der. Det strekker seg til det andre grensesnittet hvis det ikke har noe abstrakt.
12) Hvorfor trengs statiske metoder i Java 8?
Statisk metodereferanse refereres til som en verktøy- eller hjelpemetode, som er knyttet til et grensesnitt. Det er også en klasse som ikke er knyttet til noe objekt.
Her er grunner til å bruke den statiske metoden i Java:
- Nyttig for å vedlikeholde og utvide API.
- Medfører en klar og kortfattet ansvarsfordeling, og man trenger ikke ha én bruksklasse for å ha brukssamlingene.
- Nyttig for å holde alle grensesnittene i et felles grensesnitt i stedet for spesifikke grensesnitt.
13) Hva er fordelene med Nashorn?
Nashorn er den mest avanserte og nye JavaScript prosesseringsmotor introdusert i Java 8. Tidligere var den basert på Mozilla Rhino. Det gir forbedret samsvar med ECMA JavaManus. Den er raskere enn tidligere versjoner.
14) Hvordan er Collection API og Stream API forskjellige?
Her er noen viktige forskjeller mellom Collection API og Stream API
| Innsamlings-API | Stream-API |
|---|---|
| Collection API ble først brukt i Java 1.2 | Stream API ble først introdusert i Java IF 8. |
| Du kan bruke den til å lagre ubegrenset data. | Du kan bruke den til å beregne ubegrenset data. |
| Collection API lar deg bruke Iterator og Spilterator for å iterere dataene. | Stream API lar deg bruke Iterator og Spilterator for å iterere dataene. |
| Collection API er lett tilgjengelig. | In-stream API, det er ingen direkte måte å nå bestemte elementer på. |
| Det gjør det også enkelt å behandle det i henhold til dine behov. | Stream API kan behandles bare én gang. |
15) Beskriv PermGenSpace og MetaSpace.
PermGen eller Permanent Generation Space er en unik type heap space som brukes til å holde styr på lagrede metadata som nå er fjernet i Java 8.
Med denne nye versjonen vil lagringen av metadata gjøres i et lignende minne kjent som "MetaSpace." Det er ikke overførbart Java Heap-minne og er en forbedret versjon av PermGen i aspekter av auto-tuning, søppelinnsamling, etc.
16) Hvordan lages funksjonelt grensesnitt i Java 8?
Du kan bruke lambda-uttrykk for å implementere den abstrakte metoden for det funksjonelle grensesnittet i Java 8. Nedenfor er et kodeeksempel 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!");
}
}
Utgang:
Hello, world!
17) Hva er forskjellene og likhetene mellom funksjon og predikat i Java 8?
Her er forskjellene mellom funksjon og predikat i Java 8:
- Funksjon er nyttig i transformasjon, mens predikat kan brukes til å teste enhver tilstand.
- Funksjon kan motta et argument og gi ut et resultat, mens predikat også kan motta et argument, men gir bare ut den boolske verdien.
- Funksjonen er merket med , og Predikat er kun angitt med , der T er funksjonstypen, og R er resultatet.
Nedenfor er likhetene mellom funksjon og predikat:
- Både funksjon og predikat er funksjonelle grensesnitt.
- Både funksjon og predikat er enkeltargumentfunksjoner.
18) Forklar forskjellen mellom skip(long) og limit(long) ved å bruke et eksempel.
Skip (lang) er en mellomoperasjon som henter gjenværende elementer etter å ha eliminert de første n elementene i en spesifikk 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);
}
}
Utgang:
Charlie Dave Eve
Grensen (lang) henter strømmen av elementer av 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);
}
}
Utgang:
AliceBob Charlie
19) Hvilken situasjon er best egnet for å bruke stream API i Java 8?
Du kan bruke stream API i Java 8. Det er behov for operasjonene nedenfor:
- Du kan utføre parallell behandling.
- For å utføre late operasjoner
- For å utføre databaseoperasjoner
- Bruk for interne iterasjoner.
- For å skrive programmering i funksjonell stil
- Du kan bruke til å bruke rørledningsoperasjoner.
20) Hva er funksjonen til Type-inferens?
Type Inference hjelper kompilatoren med å identifisere eller gjenkjenne typene argumenter ved bare å ha en oversikt over den tilsvarende erklæringen og metodeanropet.
21) Hvilken er den enkleste måten å identifisere og eliminere dupliserte elementer fra en liste i Java 8?
Den enkleste måten å identifisere og fjerne de dupliserte elementene på er ved å bruke strømoperasjonen og utføre en samling, etterfulgt av bruken av Collections.toSet()-metoden.
22) Hva er retningslinjene for funksjonelt grensesnitt?
Nedenfor er retningslinjene for et funksjonelt grensesnitt som er blant de mest spurte Java 8 programmeringsspørsmål:
- Den skal bare ha én abstrakt metode.
- Du kan ha så mange som en rekke standardmetoder da det ikke er abstrakt, og implementering er gitt tidligere av samme.
- En abstrakt metode, hovedelementet i offentlige metoder fra Java.lang, er kjent i et funksjonelt grensesnitt. Objekt anses fortsatt som et nyttig grensesnitt.
OBS: Forklaringen på dette er at hver implementeringsklasse for dette grensesnittet kan ha en implementering for denne abstrakte metoden som enten er definert av selve implementeringsklassen eller hentet fra en superklasse.
23) Skille mellom splitter og iterator.
Her er noen forskjeller mellom splitter og iterator:
| Spliterator | iterator |
|---|---|
| Den ble introdusert i Java 1.2. | Den ble introdusert i Java 1.8. |
| Den gjentar bare alle elementene separat. | Den tverr alle elementene separat så vel som i bulk. |
| Den fungerer som en iterator for en komplett samling av APIer. | Den fungerer som en iterator for både stream- og samlings-API. |
| Den vil ikke støtte parallell programmering. | Den støtter parallell programmering. |
24) Hvordan kan du kalle en standardmetode for et grensesnitt i en klasse?
Standard nøkkelordet, som er tilstede ved starten av metodesignaturen, brukes til å angi en metodeerklæring i et grensesnitt som en standardmetode. Du kan hoppe over den offentlige modifikatoren fordi hver metodeerklæring i et grensesnitt, inkludert standardmetoder, automatisk er offentlig.
25) Definer standardmetoden. Når kan du bruke det?
Standardmetoden er til stede i grensesnittet, og den inkluderer en implementering. Denne metoden er nyttig for å legge til ny funksjonalitet til et gitt grensesnitt mens den beholder bakoverkompatibiliteten sammen med klassene som allerede er implementert i et grensesnitt.
26) Hvordan lages strømmer i Java, og er det blant de mest stilte intervjuspørsmålene for java 8 stream?
Strømmer inn Java beskrive sekvensen av objekter fra en spesifikk kilde, som en samling, som vil støtte aggregerte operasjoner. Du kan bruke den til å samle inn, filtrere, skrive ut og endre en datastruktur til en annen.
Her er eksempler på hvordan du lager strømmer 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);
}
}
Utgang:
Alice Bob Charlie Dave Eve
27) Hva er Map- og FlatMap-strømoperasjoner?
Kart og FlatMap regnes som strøm- og mellomstrømoperasjoner som aksepterer en funksjon. Det hjelper også med å bruke den gitte funksjonen på resten av elementene.
28) Hvorfor må vi endre Java programmeringsspråk ofte?
Vi må endre Java programmeringsspråk ofte på grunn av følgende årsaker:
- Du kan bruke funksjonene til Funksjonell programmering.
- For å utnytte den nyeste teknologien til Multi-Core CPUer effektivt.
29) Nevn noen funksjonelle grensesnitt som brukes i Java 8.
Nedenfor er noen funksjonelle grensesnitt som brukes i Java 8:
- BinaryOperator
- Forbruker
- Funksjon
- Leverandør
- UnærOperator
- Bifunksjon
- predikat
30) Hva er de viktigste API-klassene for tid og dato?
Nedenfor er de viktigste API-klassene for tid og dato som brukes i Java 8:
- Lokal tid
- LocalDateTime
- LocalDate
31) Gi den grunnleggende strukturen/syntaksen til Lambda-uttrykk.
Den grunnleggende strukturen/syntaksen til Lambda-uttrykk er:
(arugument - list) - > {body}
Her
- Argument – liste: Du kan holde den fylt eller tom.
- Piltoken: Det er nyttig for å koble sammen kroppsuttrykk og argumenter – liste.
- Kropp: Den består av utsagn og uttrykk for lambda-uttrykket.
32) Hva er hovedkarakteristikkene til Stream?
Nedenfor er hovedkarakteristikkene til Stream:
- pipelining
- Kilde
- Aggregate Operasjoner
- Sekvens av elementer
- Automatiske iterasjoner
33) Hva er de vanligste mellomoperasjonene?
Noen av de vanligste typene mellomuttrykk er:
- Distinkt ()
- Hopp over (lang n)
- Filter (predikat)
- Grens (lang n)
- Kart (funksjon)
34) Hva er de vanligste typene terminaloperasjoner?
Nedenfor er de vanligste typene terminaloperasjoner:
- Telle
- Reduser
- Min
- AllMatch
- max
- AnyMatch
- Til Array
35) Hva er metodereferanse i Java 8?
Metodereferanse i Java 8 er en måte å referere til det funksjonelle grensesnittet på. Det er kjent som en mye enklere og mer effektiv form for lambda-uttrykk. Når du bruker lambda-uttrykk for å referere til en metode, kan du erstatte den med metodereferansen.
36) Hvordan er interne og eksterne iterasjoner forskjellige?
Nedenfor er forskjellene mellom intern og ekstern iterasjon:
| Intern iterasjon | Ekstern iterasjon |
|---|---|
| Det er også kjent som den passive eller implisitte iteratoren. | Det er også kjent som den aktive eller eksplisitte iteratoren. |
| Den bæres internt på ulike gjenstander. | Den bæres eksternt på ulike gjenstander. |
| Den brukes i funksjonell programmering. | Det brukes i objektorientert programmering. |
| Det står for svært færre feil. Koding er imidlertid et must for det. | Det står for flere feil. Koding er imidlertid ikke nødvendig. |
37) Har typeslutning blitt brukt i tidligere versjoner av Java?
Java introdusert type interferens i Java 5, men med svært begrenset tilgang. Men med årene har mulighetene for typeinterferens økt, og den er på sitt beste i Java 8.
38) Skriv ned en Java 8-program som kan finne en Streams minimum og maksimum antall.
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);
}
}
Utgang:
Minimum number: 1 Maximum number: 9
39) Hvordan slår man sammen flere strenger gjennom StringJoiner-klassen?
StringJoiner hjelper til med å koble til en eller flere strenger, og det kan gjøres gjennom en spesifikk snekker eller skilletegn. For eksempel kan man slå sammen en rekke strenger ved å skille dem med et komma (,).
For å lage en CSV-streng, kan man generere en full bane for en bestemt katalog i Linux, noe som kan gjøres ved å koble til strengen ved hjelp av skråstreken "/."
40) Hva er det beste alternativet til lambda-uttrykk i Java 8?
Generelt bruker vi lambda-uttrykk for å lage anonyme metoder som bidrar til å få ønsket utgang. Det er imidlertid tilfeller der lambda-uttrykk ikke fungerer og bare bruker en eksisterende metode.
Så for å unngå dette kan du bruke metodereferanse som kan hjelpe deg med å få ønsket utgang. Metodereferansen er avbildet ved hjelp av: (dobbelt kolon) symbol.
