35+ Java 8 interviewvragen en antwoorden (2025)

Of het nu een techneut of een andere professional is, interviews zorgen altijd voor een adrenalinestoot uit nervositeit. Om je te onderscheiden van de massa, is het echter belangrijk om je vaardigheden te verbeteren en op je capaciteiten te wedden. Bovendien heb je de meest gestelde vragen in handen Java 8 interviewvragen en antwoorden kunnen uw slimmer maken.

Graaf daarom diep in deze Java 8-interviewvragen voor ervaren en beginners om uw aanstaande interviews te verbeteren.

Java 8 sollicitatievragen voor eerstejaars en ervaring

1) Java 8 valt in welk programmeerparadigma?

Java 8 valt in het volgende programmeerparadigma:

  • Object- of klassegeoriënteerde programmeertaal.
  • Functionele programmeertaal.
  • Gespecificeerde procedurele programmeertaal.
  • Logische programmeertaal.

2) Waarom zou men de klasse Optioneel gebruiken?

Optionele klasse is een nieuw geïntroduceerde containerklasse die handig is bij het demonstreren van de bestaande of niet-bestaande optionele waarden. Het grote voordeel is het vermijden van null & void-controles en het vergemakkelijkt methoden die nuttig zijn bij het controleren van het bestaan ​​van een waarde voor een bepaalde variabele.


Java 8 interviewvragen

3) Noem een ​​paar recente functies die zijn geïntroduceerd in Java 8.

Hieronder vindt u de meest recente functies die zijn geïntroduceerd in Java 8:

  • Lambda-expressies: Het is een Java functie die u kunt delen of waarnaar u kunt verwijzen als een object.
  • Methode interferentie: Het gebruikt functie als criterium om een ​​methode te implementeren.
  • Functionele interferentie: Elke functionele interferentie wordt geassocieerd met een enkele abstracte methode die bekend staat als de functionele methode.
  • Standaardmethode: Het is nuttig bij het implementeren van methoden in de interfaces die het potentieel van 'interface-evolutie' helpen mogelijk te maken.
  • Datum Tijd-API: Het is een verbeterde maar toch geïnspireerde versie van Java Time API's om de nadelen van de laatste versie op te vangen.
  • Stream API wordt de abstracte laag genoemd, die helpt bij het pijplijnen van de verwerkingsgegevens.
  • Optioneel: De wrapper-klasse is handig bij het controleren van de nulwaarden en het verwerken van de verdere gegevens.
  • JavaScript en Nashorn Engine: Het is de verbeterde versie van de JavaScript Engine, die handig is om de functionaliteit ervan mogelijk te maken in Java, ter vervanging van Neushoorn.

4) Specificeer de voordelen van het gebruik van Java 8

Hier zijn enkele voordelen van het gebruik: Java 8:

  • Het helpt bij het veel sneller en eenvoudiger maken van applicaties.
  • Het biedt een zeer stabiele omgeving voor de ontwikkelaars.
  • Beknopte, herbruikbare en gemakkelijk te begrijpen codes.
  • Verbeterde en effectieve ondersteuning.
  • Gemakkelijk te porteren naar verschillende besturingssystemen.
  • Minimale standaardcodes.

5) Wat is een verzameling en waarin verschilt deze van een stream?

Een verzameling is een database in het geheugen die alle waarden registreert volgens de huidige gegevensstructuur. Dus voordat u het aan de verzameling toevoegt, is het belangrijk om ze allemaal te berekenen. Terwijl een stream een ​​visueel vaste datastructuur is waarin we de elementen kunnen berekenen op basis van onze behoeften.


6) Wat is de Lambada-uitdrukking?

Lambada-expressie is een soort functie zonder naam en wordt soms de anonieme functie genoemd omdat deze geen eigen type informatie heeft. U kunt het naar behoefte gebruiken, en het is erg handig bij het herhalen, filteren en extraheren van gegevens uit de verzameling.

Voorbeeld:

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) Definieer stroompijplijnen

Stream pipelining is een methode om verschillende bewerkingen in zijn geheel te groeperen. U kunt dit bereiken door de streambewerkingen in twee delen te categoriseren. Tussenliggende en eindbewerkingen.

Wanneer een tussenliggende bewerking wordt uitgevoerd, wordt een instantie teruggestuurd naar de stream-pipeline. Daarom kan elke gebruiker een irrationeel aantal tussenliggende bewerkingen instellen om gegevens te stroomlijnen en uiteindelijk een verwerkingspipeline te vormen.

Bovendien is het voor het beëindigen van de pijpleidingen noodzakelijk om aan het einde van het proces een terminale operatie te hebben.


8) Wat zijn predikaat en consument? Java 8?

Een predikaat is een functionele interface die doorgaans argumenten ontvangt en een Booleaanse waarde ophaalt. U kunt het gebruiken om een ​​filter toe te passen op een verzameling objecten.

Aan de andere kant wordt de consument een ingebouwde functionele interface genoemd Java.util.function-pakket. Je kunt het gebruiken om elk object te consumeren, en het neemt de invoerwaarde en geeft niets uit.


9) Waarom wordt de peek()-methode gebruikt? Java 8?

De peek()-methode helpt bij het ondersteunen van foutopsporing, waarbij men de elementen wil opmerken terwijl ze de neiging hebben om vanuit een specifiek punt in een pijplijn te stromen. Het is een weergave van onze observatie van hoe elk element passeert.

Syntax: public Object peek()


10) Wat maakt jou de ideale kandidaat voor de Java rol van ontwikkelaar?

Hier zijn enkele belangrijke eigenschappen die u tot een ideale kandidaat voor de functie kunnen maken Java rol van ontwikkelaar:

  • Je moet het vermogen hebben om duidelijke, gemakkelijk te begrijpen en efficiënte codes te schrijven.
  • Een diepgaand begrip van de patronen en concepten van “OOP of objectgeoriënteerd programmeren. '
  • Een goede kennis van verschillende architectuur- en ontwerppatronen.
  • Bekendheid met Java gelijktijdigheidspatronen.
  • Ervaring en kennis van het werken met verschillende webapplicatieframeworks zoals Spark en speel.
  • Fundamentele kennis van Java Virtuele machine of JVM, de nadelen, oplossing, etc.
  • Een goede ervaring met het gebruik van embedded en externe databases.

11) Leg de 'functionele interface' uit.

Een interface met slechts één samenvatting wordt een functionele interface genoemd. Het is ook bekend als de Single Abstract Method of SAM. De annotatie @FunctionalInterface is echter optioneel en kan worden gebruikt, zelfs als deze er niet is. Het strekt zich uit tot de andere interface als deze geen samenvatting heeft.


12) Waarom zijn statische methoden nodig? Java 8?

Statische methodereferentie wordt een hulpprogramma of helpermethode genoemd, die is gekoppeld aan een interface. Het is ook een klasse die aan geen enkel object is gekoppeld.

Hier zijn redenen om de statische methode te gebruiken Java:

  • Handig voor het onderhouden en uitbreiden van de API.
  • Vereist een duidelijke en beknopte verdeling van verantwoordelijkheden en u hoeft niet over één hulpprogrammaklasse te beschikken om de hulpprogrammaverzamelingen te hebben.
  • Handig om alle interfaces in een gemeenschappelijke interface te houden in plaats van specifieke interfaces.

13) Wat zijn de voordelen van Nashorn?

Nashorn is de meest geavanceerde en nieuwe JavaScript verwerkingsengine geïntroduceerd Java 8. Eerder was het gebaseerd op Mozilla Rhino. Het biedt verbeterde naleving van ECMA JavaScript. Het is sneller dan de vorige versies.


14) Waarin verschillen Collection API en Stream API?

Hier volgen enkele belangrijke verschillen tussen Collection API en Stream API

Verzamel-API Stream API
Collection-API werd voor het eerst gebruikt in Java 1.2 Stream-API werd voor het eerst geïntroduceerd in Java ZO 8.
Je kunt het gebruiken om onbeperkt gegevens op te slaan. U kunt het gebruiken om onbeperkte gegevens te berekenen.
Met de Collection API kunt u Iterator en Spilterator gebruiken voor het itereren van de gegevens. Met Stream API kunt u Iterator en Spilterator gebruiken voor het itereren van de gegevens.
De Collection-API is eenvoudig toegankelijk. In-Stream API, er is geen directe manier om specifieke elementen te bereiken.
Het maakt het ook gemakkelijk om het volgens uw behoeften te verwerken. Stream API kan slechts één keer worden verwerkt.

15) Beschrijf PermGenSpace en MetaSpace.

PermGen of Permanent Generation Space is een uniek type heap-ruimte die wordt gebruikt voor het bijhouden van opgeslagen metadata die nu wordt verwijderd in Java 8.

Met deze nieuwe versie zal de opslag van de metadata plaatsvinden in een soortgelijk geheugen dat bekend staat als “MetaSpace.” Het is niet overdraagbaar Java Heap-geheugen en is een verbeterde versie van PermGen op het gebied van auto-tuning, garbage collection, etc.


16) Hoe wordt de functionele interface gemaakt? Java 8?

U kunt lambda-expressie gebruiken om de abstracte methode van de functionele interface in te implementeren Java 8. Hieronder vindt u een codevoorbeeld hiervan:

Voorbeeld

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) Wat zijn de verschillen en overeenkomsten tussen Functie en Predikaat Java 8?

Hier zijn de verschillen tussen Functie en Predikaat in Java 8:

  • Functie is nuttig bij transformatie, terwijl predikaat kan worden gebruikt om elke voorwaarde te testen.
  • Functie kan een argument ontvangen en een resultaat afgeven, terwijl predikaat ook een argument kan ontvangen, maar alleen de Booleaanse waarde geeft.
  • Functie wordt aangegeven met , en Predikaat wordt alleen aangegeven met , waarbij T het functietype is en R het resultaat is.

Hieronder staan ​​de overeenkomsten tussen Functie en Predikaat:

  • Zowel functie als predikaat zijn functionele interfaces.
  • Zowel de functie als het predikaat zijn functies met één argument.

18) Leg het verschil uit tussen skip(long) en limit(long) aan de hand van een voorbeeld.

De skip (lang) is een tussenliggende bewerking die de overgebleven elementen ophaalt nadat de eerste n elementen van een specifieke stroom zijn verwijderd.

Voorbeeld:

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

De limiet (lang) haalt de stroom elementen van een bepaalde grootte op

Voorbeeld:

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) Welke situatie is het meest geschikt om de stream-API in te gebruiken Java 8?

U kunt de stream-API gebruiken in Java 8. De onderstaande handelingen zijn nodig:

  • U kunt parallelle verwerking uitvoeren.
  • Voor het uitvoeren van luie handelingen
  • Om databasebewerkingen uit te voeren
  • Gebruik voor interne iteraties.
  • Voor het schrijven van functionele programmering
  • U kunt dit gebruiken voor pijplijnbewerkingen.

20) Wat is de functie van Type Inferentie?

Type Inference helpt de compiler bij het identificeren of herkennen van de typen argumenten door eenvoudigweg een overzicht te hebben van de overeenkomstige declaratie en methode-aanroep.


21) Wat is de gemakkelijkste manier om dubbele elementen uit een lijst te identificeren en te verwijderen Java 8?

De eenvoudigste manier om dubbele elementen te identificeren en te verwijderen, is door de streambewerking te gebruiken en een verzameling uit te voeren, gevolgd door het gebruik van de Collections.toSet()-methode.


22) Wat zijn de richtlijnen voor functionele interface?

Hieronder vindt u de richtlijnen voor een functionele interface, die tot de meest gevraagde behoort Java 8 programmeervragen:

  • Er zou slechts één abstracte methode moeten zijn.
  • Je kunt maar liefst een aantal standaardmethoden hebben, omdat deze niet abstract zijn en de implementatie eerder door dezelfde wordt gegeven.
  • Een abstracte methode, het belangrijkste element van publieke methoden Java.lang, is bekend in een functionele interface. Object wordt nog steeds gezien als een nuttige interface.

Opmerking: De verklaring hiervoor is dat elke implementatieklasse voor deze interface een implementatie voor deze abstracte methode kan hebben die ofwel door de implementatieklasse zelf wordt gedefinieerd, ofwel uit een superklasse wordt gehaald.


23) Maak onderscheid tussen spliterator en iterator.

Hier zijn enkele verschillen tussen spliterator en iterator:

Splitser iterator
Het werd geïntroduceerd in Java 1.2. Het werd geïntroduceerd in Java 1.8.
Het herhaalt alleen alle elementen afzonderlijk. Het doorkruist alle elementen afzonderlijk en in bulk.
Het fungeert als iterator voor een complete verzameling API's. Het fungeert als een iterator voor zowel de stream- als de collectie-API.
Het ondersteunt geen parallelle programmering. Het ondersteunt parallelle programmering.

24) Hoe kun je een standaardmethode van een interface in een klasse aanroepen?

Het standaardsleutelwoord, dat aanwezig is aan het begin van de methodehandtekening, wordt gebruikt om een ​​methodedeclaratie in een interface aan te duiden als standaardmethode. U kunt de openbare modifier overslaan omdat elke methodedeclaratie in een interface, inclusief standaardmethoden, automatisch openbaar is.


25) Definieer de standaardmethode. Wanneer kun je het gebruiken?

De standaardmethode is aanwezig in de interface en bevat een implementatie. Deze methode is nuttig bij het toevoegen van nieuwe functionaliteit aan een bepaalde interface, terwijl de achterwaartse compatibiliteit behouden blijft, samen met de klassen die al in een interface zijn geïmplementeerd.


26) Hoe worden streams gemaakt? Java, en is het een van de meest gestelde Java 8 Stream-interviewvragen?

Stroomt binnen Java beschrijf de volgorde van objecten uit een specifieke bron, zoals een verzameling, die geaggregeerde bewerkingen ondersteunt. U kunt het gebruiken om te verzamelen, filteren, afdrukken en de ene datastructuur te wijzigen in de andere.

Hier volgen voorbeelden van hoe u streams kunt maken 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) Wat zijn Map- en FlatMap-streambewerkingen?

Map en FlatMap worden beschouwd als de stream en tussenliggende streambewerkingen die een functie accepteren. Het helpt ook bij het toepassen van de gegeven functie op de rest van de elementen.


28) Waarom moeten we de Java programmeertaal vaak?

We moeten de Java programmeertaal vaak vanwege de onderstaande redenen:

  • U kunt gebruik maken van de functies van Functioneel programmeren.
  • Om de nieuwste technologie van Multi-Core CPU's effectief te gebruiken.

29) Noem een ​​paar functionele interfaces die worden gebruikt Java 8.

Hieronder vindt u enkele functionele interfaces die worden gebruikt Java 8:

  • binairOperator
  • Consument
  • Functie
  • leverancier
  • unaireOperator
  • BiFunctie
  • Predikaat

30) Wat zijn de belangrijkste API-klassen voor tijd en datum?

Hieronder vindt u de belangrijkste API-klassen voor tijd en datum die worden gebruikt Java 8:

  • Lokale tijd
  • LokaleDatumTijd
  • LokaleDatum

31) Geef de basisstructuur/syntaxis van de Lambda-expressie.

De basisstructuur/syntaxis van de Lambda-expressie is:

(arugument - list) - > {body}

Hier

  • Argument – ​​lijst: Je kunt hem gevuld of leeg houden.
  • Pijlfiche: Het is handig bij het koppelen van lichaamsexpressies en argumenten – lijst.
  • Tekst: Het bestaat uit uitspraken en uitdrukkingen voor de lambda-expressie.

32) Wat zijn de belangrijkste kenmerken van Stream?

Hieronder staan ​​de belangrijkste kenmerken van Stream:

  • pipelining
  • Bron
  • Aggregaat Operaties
  • Volgorde van elementen
  • Automatische iteraties

33) Wat zijn de meest voorkomende tussenliggende bewerkingen?

Enkele van de meest voorkomende typen tussenliggende expressies zijn:

  • Verschillend ()
  • Overslaan (lange n)
  • Filter (predikaat)
  • Limiet (lange n)
  • Kaart (Functie)

34) Wat zijn de meest voorkomende soorten terminaloperaties?

Hieronder staan ​​de meest voorkomende soorten terminaloperaties:

  • Tellen
  • Verminderen
  • min
  • AllesMatch
  • Max
  • AnyMatch
  • Naar array

35) Wat is methodereferentie? Java 8?

Methodereferentie in Java 8 is een manier om naar de functionele interface te verwijzen. Het staat bekend als een veel eenvoudigere en efficiëntere vorm van lambda-expressie. Wanneer u lambda-expressies gebruikt om naar een methode te verwijzen, kunt u deze vervangen door de methodereferentie.


36) Hoe verschillen interne en externe iteraties?

Hieronder staan ​​de verschillen tussen interne en externe iteratie:

Interne iteratie Externe iteratie
Het is ook bekend als de passieve of impliciete iterator. Het is ook bekend als de actieve of expliciete iterator.
Het wordt intern op verschillende objecten gedragen. Het wordt extern op verschillende objecten gedragen.
Het wordt gebruikt bij functioneel programmeren. Het wordt gebruikt bij objectgeoriënteerd programmeren.
Het zorgt voor heel weinig fouten. Coderen is hiervoor echter een must. Het zorgt voor meer fouten. Coderen is echter niet nodig.

37) Is type-inferentie gebruikt in eerdere versies van Java?

Java introduceerde type-interferentie in Java 5 maar met zeer beperkte toegang. Maar door de jaren heen zijn de mogelijkheden van type-interferentie toegenomen, en dit is op zijn best Java 8.


38) Schrijf a. op Java 8-programma dat het minimum- en maximumaantal van een stream kan vinden.

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) Hoe kan ik meerdere Strings samenvoegen via de StringJoiner Class?

StringJoiner helpt bij het samenvoegen van een of meer Strings, en dit kan worden gedaan via een specifieke joiner of delimiter. Bijvoorbeeld, men kan een aantal strings samenvoegen door ze te scheiden met een komma (,).

Voor het maken van een CSV-string kan men een volledig pad genereren voor een bepaalde map in Linux, wat gedaan kan worden door de String samen te voegen met behulp van de slash “/.”


40) Wat is het beste alternatief voor lambda-uitdrukkingen in Java 8?

Over het algemeen gebruiken we lambda-expressies om anonieme methoden te creëren die helpen de gewenste uitvoer te verkrijgen. Er zijn echter gevallen waarin lambda-expressies niet werken en alleen een bestaande methode gebruiken.

Om dit te voorkomen, kunt u een methodereferentie gebruiken die kan helpen bij het verkrijgen van de gewenste output. De methodereferentie wordt weergegeven met het symbool: (dubbele dubbele punt).