35+ Java 8 haastattelukysymystä ja vastausta (2025)

Olipa kyseessä teknikko tai joku muu ammattilainen, haastattelut saavat aina adrenaliinin hermostuneisuudesta. Erottuaksesi joukosta on kuitenkin tärkeää hioa taitojasi ja panostaa kykyihisi. Lisäksi käsin usein kysytyt Java Kahdeksan haastattelukysymystä ja vastausta voivat olla tietoisesi.

Siksi kaivaudu syvälle näihin java 8 -haastattelukysymyksiin kokeneille ja aloittelijoille, jotta pääset tuleviin haastatteluihin.

Java 8 haastattelukysymystä fuksilaisille ja kokeneemmille

1) Java 8 kuuluu mihin ohjelmointiparadigmaan?

Java 8 kuuluu seuraavaan ohjelmointiparadigmaan:

  • Olio- tai luokkasuuntautunut ohjelmointikieli.
  • Toiminnallinen ohjelmointikieli.
  • Määritetty prosessiohjelmointikieli.
  • Looginen ohjelmointikieli.

2) Miksi valinnaista luokkaa pitäisi käyttää?

Valinnainen luokka on äskettäin käyttöön otettu säilöluokka, joka on hyödyllinen olemassa olevien tai ei-olemassa olevien valinnaisten arvojen osoittamisessa. Sen tärkein etu on välttää nolla & void -tarkistuksia ja helpottaa menetelmiä, jotka ovat hyödyllisiä tietyn muuttujan arvon tarkistamisessa.


Java 8 haastattelukysymystä

3) Mainitse muutama äskettäin esitelty ominaisuus Java 8.

Alla on viimeisimmät ominaisuudet, jotka esitellään Java 8:

  • Lambda-ilmaisut: On Java toiminto, jonka voit jakaa tai johon voit viitata objektina.
  • Menetelmän häiriöt: Se käyttää toimintoa kriteerinä menetelmän toteuttamisessa.
  • Toiminnalliset häiriöt: Jokainen toiminnallinen häiriö liittyy yhteen abstraktiin menetelmään, joka tunnetaan toiminnallisena menetelmänä.
  • Oletusmenetelmä: Se on hyödyllinen toteutettaessa menetelmiä rajapinnoissa, jotka auttavat mahdollistamaan "rajapinnan evoluution" potentiaalin.
  • Date Time API: Se on parannettu mutta inspiroitu versio Java-aikasovellusliittymistä käsittelemään viimeisimmän version haittoja.
  • Stream API kutsutaan abstraktiksi kerrokseksi, joka auttaa prosessointitietojen liukuhihnassa.
  • Valinnainen: Käärimisluokka on hyödyllinen nolla-arvojen tarkistamisessa ja lisätietojen käsittelyssä.
  • JavaKäsikirjoitus ja Nashorn Engine: Se on paranneltu versio JavaScript Engine, joka on hyödyllinen sen toiminnallisuuden mahdollistamiseksi Java, korvaa Rhinon.

4) Määrittele java 8:n käytön edut

Tässä on joitain käytön etuja Java 8:

  • Se auttaa luomaan sovelluksia paljon nopeammin ja helpommin.
  • Se tarjoaa erittäin vakaan ympäristön kehittäjille.
  • Lyhyt, uudelleenkäytettävät ja helposti ymmärrettävät koodit.
  • Parannettu ja tehokas tuki.
  • Helppo siirtää eri käyttöjärjestelmiin.
  • Vähimmäiskattilakoodit.

5) Mikä on kokoelma ja miten se eroaa streamista?

Kokoelma on muistissa oleva tietokanta, joka tallentaa kaikki arvot nykyisen tietorakenteen mukaisesti. Joten ennen kuin lisäät sen kokoelmaan, on tärkeää laskea jokainen niistä. Sen sijaan stream on visuaalisesti kiinteä tietorakenne, jossa voimme laskea elementit tarpeidemme mukaan.


6) Mikä on Lambada-ilmaus?

Lambada-lauseke on eräänlainen funktio, jolla ei ole nimeä ja jota kutsutaan joskus anonyymiksi funktioksi, koska sillä ei ole omaa tietotyyppiä. Voit käyttää sitä tarpeidesi mukaan, ja se on erittäin hyödyllinen kokoelman tietojen toistamisessa, suodattamisessa ja poimimisessa.

Esimerkiksi:

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

lähtö:

Charlie

7) Määrittele virtausputkisto

Stream pipelining on tapa ryhmitellä eri toimintoja kokonaan. Voit saavuttaa tämän luokittelemalla sen stream-toiminnot kahteen osaan. Väli- ja päätetoiminnot.

Aina kun välitoiminto suoritetaan, se palauttaa ilmentymän takaisin stream-putkeen. Siksi kuka tahansa käyttäjä voi määrittää irrationaalisen määrän välioperaatioita tehostaakseen dataa ja muodostaakseen lopulta käsittelyputken.

Lisäksi putkien päättämiseksi on välttämätöntä suorittaa päätetoiminto prosessin lopussa.


8) Mitä predikaatti ja kuluttaja ovat Java 8?

Predikaatti on toiminnallinen käyttöliittymä, joka tyypillisesti vastaanottaa argumentteja ja hakee Boolen arvon. Voit käyttää sitä suodattimen käyttämiseen objektikokoelmaan.

Toisaalta kuluttajaa kutsutaan sisäiseksi toiminnalliseksi käyttöliittymäksi, joka löytyy Java.util.function paketti. Voit käyttää sitä minkä tahansa kohteen kuluttamiseen, ja se ottaa syöttöarvon eikä anna mitään.


9) Miksi peek () -menetelmää käytetään? Java 8?

Peek()-menetelmä auttaa tukemaan virheenkorjausta, jossa halutaan havaita elementit, kun niillä on taipumus virrata tietystä pisteestä liukuhihnassa. Se on esitys havainnoinnistamme kunkin elementin kulkemisesta.

Syntaksi: public Object peek()


10) Mikä tekee sinusta ihanteellisen ehdokkaan? Java kehittäjän rooli?

Tässä on joitain tärkeitä ominaisuuksia, jotka voivat tehdä sinusta ihanteellisen ehdokkaan Java kehittäjän rooli:

  • Sinulla pitäisi olla kyky kirjoittaa selkeitä, helposti ymmärrettäviä ja tehokkaita koodeja.
  • Syvä ymmärrys "malleista ja käsitteistä"OOP tai olio-ohjelmointi"
  • Erilaisten arkkitehtuuri- ja suunnittelumallien hyvä tuntemus.
  • Perehtyneisyys Java samanaikaiset mallit.
  • Kokemusta ja tietämystä erilaisten web-sovelluskehysten kanssa työskentelystä, kuten Spark ja pelata.
  • Perustiedot Java Virtuaalikone tai JVM, sen haitat, kiertotapa jne.
  • Hyvä kokemus sulautettujen ja ulkoisten tietokantojen käytöstä.

11) Selitä "toiminnallinen käyttöliittymä".

Käyttöliittymää, jossa on vain yksi abstrakti, kutsutaan toiminnalliseksi rajapinnaksi. Se tunnetaan myös nimellä Single Abstract Method tai SAM. Huomautus @FunctionalInterface on kuitenkin valinnainen ja sitä voidaan käyttää, vaikka sitä ei olisikaan. Se ulottuu toiseen käyttöliittymään, jos siinä ei ole abstraktia.


12) Miksi staattisia menetelmiä tarvitaan Java 8?

Staattista menetelmäviittausta kutsutaan apuohjelmaksi tai apumenetelmäksi, joka on linkitetty rajapintaan. Se on myös luokka, jota ei ole linkitetty mihinkään objektiin.

Tässä on syitä staattisen menetelmän käyttämiseen Java:

  • Hyödyllinen API:n ylläpitoon ja laajentamiseen.
  • Sisältää selkeän ja tiiviin vastuunjaon, eikä sinun tarvitse olla yhtä hyödyllisyysluokkaa, jotta voit hallita hyödyllisyyskokoelmia.
  • Hyödyllinen pitämään kaikki liitännät yhteisessä käyttöliittymässä tiettyjen rajapintojen sijaan.

13) Mitkä ovat Nashornin edut?

Nashorn on edistynein ja uusin JavaKäsikirjoitus käsittelymoottori esiteltiin vuonna Java 8. Aiemmin se perustui Mozilla Rhinoon. Se tarjoaa parannetun yhteensopivuuden ECMA:n kanssa JavaKäsikirjoitus. Se on nopeampi kuin aiemmat versiot.


14) Miten Collection API ja Stream API eroavat toisistaan?

Tässä on joitain tärkeitä eroja Collection API:n ja Stream API:n välillä

Collection API Stream API
Collection API:ta käytettiin ensimmäisen kerran vuonna Java 1.2 Stream API esiteltiin ensimmäisen kerran vuonna Java JOS 8.
Voit käyttää sitä rajoittamattoman tiedon tallentamiseen. Voit käyttää sitä rajoittamattoman määrän laskemiseen.
Collection API antaa sinun käyttää Iteraattoria ja Spilteraattoria tietojen iterointiin. Stream API antaa sinun käyttää Iteraattoria ja Spilteraattoria tietojen iterointiin.
Collection API on helppokäyttöinen. In-stream API:lla ei ole suoraa tapaa saavuttaa tiettyjä elementtejä.
Se helpottaa myös sen käsittelyä tarpeidesi mukaan. Stream API voidaan käsitellä vain kerran.

15) Kuvaile PermGenSpace ja MetaSpace.

PermGen tai Permanent Generation Space on ainutlaatuinen kasatila, jota käytetään tallennettujen metatietojen seuraamiseen ja joka nyt poistetaan Java 8.

Tässä uudessa versiossa metatiedot tallennetaan samanlaiseen muistiin, joka tunnetaan nimellä "MetaSpace". Se ei ole siirrettävä Java Kasa muisti ja on parannettu versio PermGenistä automaattisen virityksen, roskien keräämisen jne.


16) Kuinka toiminnallinen käyttöliittymä luodaan Java 8?

Voit käyttää lambda-lauseketta toteuttamaan toiminnallisen käyttöliittymän abstraktin menetelmän Java 8. Alla on esimerkki samasta koodauksesta:

esimerkki

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

lähtö:

Hello, world!

17) Mitä eroja ja yhtäläisyyksiä funktion ja predikaatin välillä on Java 8?

Tässä ovat erot funktion ja predikaatin välillä Java 8:

  • Funktio on hyödyllinen muunnoksessa, kun taas predikaattia voidaan käyttää minkä tahansa ehdon testaamiseen.
  • Funktio voi vastaanottaa argumentin ja antaa tuloksen, kun taas predikaatti voi vastaanottaa myös argumentin, mutta antaa vain Boolen arvon.
  • Toiminto on merkitty , ja Predikaatti on merkitty vain , jossa T on funktion tyyppi ja R on tulos.

Alla on yhtäläisyyksiä funktion ja predikaatin välillä:

  • Sekä funktio että predikaatti ovat toiminnallisia rajapintoja.
  • Sekä funktio että predikaatti ovat yksittäisiä argumentteja.

18) Selitä ero ohituksen (pitkä) ja rajan (pitkä) välillä esimerkin avulla.

Ohitus (pitkä) on välioperaatio, joka hakee jäljellä olevat elementit sen jälkeen, kun tietyn virran ensimmäiset n elementtiä on poistettu.

Esimerkiksi:

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

lähtö:

Charlie
Dave
Eve

Rajoitus (pitkä) hakee tietynkokoisten elementtien virran

Esimerkiksi:

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

lähtö:

AliceBob
Charlie

19) Mikä tilanne on sopivin stream API:n käyttöön Java 8?

Voit käyttää stream-sovellusliittymää Java 8. Tarvitaan seuraavat toiminnot:

  • Voit suorittaa rinnakkaiskäsittelyn.
  • Laiskojen operaatioiden suorittamiseen
  • Tietokantatoimintojen suorittamiseen
  • Käytä sisäisiin iteraatioihin.
  • Toiminnallisen ohjelmoinnin kirjoittamiseen
  • Voit käyttää putkioperaatioita.

20) Mikä on tyyppipäätelmän tehtävä?

Type Inference auttaa kääntäjää tunnistamaan tai tunnistamaan argumenttityypit, koska sillä on yleiskuva vastaavasta ilmoituksesta ja menetelmän kutsusta.


21) Mikä on helpoin tapa tunnistaa ja poistaa päällekkäiset elementit luettelosta Java 8?

Helpoin tapa tunnistaa ja poistaa päällekkäiset elementit on käyttää stream-toimintoa ja suorittaa kokoelma, jonka jälkeen käytetään Collections.toSet()-metodia.


22) Mitkä ovat toiminnallisen käyttöliittymän ohjeet?

Alla on ohjeita toiminnallisesta käyttöliittymästä, jota kysytään eniten Java 8 ohjelmointikysymystä:

  • Siinä pitäisi olla vain yksi abstrakti menetelmä.
  • Oletusmenetelmiä voi olla vaikka kuinka monta, koska se ei ole abstraktia, ja toteutus annetaan aiemmin samalla.
  • Abstrakti menetelmä, pääelementti julkisten menetelmien Java.lang tunnetaan toiminnallisessa käyttöliittymässä. Objektia pidetään edelleen hyödyllisenä käyttöliittymänä.

Huomautus: Selitys tälle on, että jokaisella tämän rajapinnan toteutusluokalla voi olla toteutus tälle abstraktille menetelmälle, joka on joko itse toteutusluokan määrittelemä tai otettu superluokasta.


23) Erota jakaja ja iteraattori.

Tässä on joitain eroja jaottajan ja iteraattorin välillä:

Jakaja Iteraattori
Se otettiin käyttöön vuonna Java 1.2. Se otettiin käyttöön vuonna Java 1.8.
Se toistaa vain kaikki elementit erikseen. Se poikittaa kaikki elementit erikseen sekä irtotavarana.
Se toimii iteraattorina täydelliselle API-kokoelmalle. Se toimii iteraattorina sekä streamin että kokoelman API:lle.
Se ei tue rinnakkaisohjelmointia. Se tukee rinnakkaisohjelmointia.

24) Kuinka voit kutsua luokan rajapinnan oletusmenetelmää?

Metodin allekirjoituksen alussa olevaa oletusavainsanaa käytetään määrittämään menetelmän määrittely käyttöliittymässä oletusmenetelmäksi. Voit ohittaa julkisen muokkauksen, koska käyttöliittymän jokainen menetelmämääritys, mukaan lukien oletusmenetelmät, on automaattisesti julkinen.


25) Määritä oletusmenetelmä. Milloin voit käyttää sitä?

Oletusmenetelmä on olemassa käyttöliittymässä, ja se sisältää toteutuksen. Tämä menetelmä on hyödyllinen lisättäessä uusia toimintoja tiettyyn käyttöliittymään, samalla kun se säilyttää taaksepäin yhteensopivuuden ja sen luokkien, jotka on jo toteutettu rajapinnassa.


26) Miten streamit luodaan Java, ja onko se yksi eniten kysytyistä Java 8 -stream -haastattelukysymyksistä?

Striimaa sisään Java kuvaa tietystä lähteestä, kuten kokoelmasta, peräisin olevien objektien sarjaa, joka tukee koostetoimintoja. Sen avulla voit kerätä, suodattaa, tulostaa ja muuttaa tietorakennetta toiseksi.

Tässä on esimerkkejä streamien luomisesta 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);
    }
}

lähtö:

Alice
Bob
Charlie
Dave
Eve

27) Mitä ovat Map- ja FlatMap-stream-toiminnot?

Map ja FlatMap katsotaan virta- ja välivirtaoperaatioiksi, jotka hyväksyvät toiminnon. Se auttaa myös soveltamaan annettua funktiota muihin elementteihin.


28) Miksi meidän täytyy muuttaa Java ohjelmointikieli usein?

Meidän on muutettava Java ohjelmointikieli usein seuraavista syistä:


29) Mainitse muutama toiminnallinen rajapinta, jota käytetään Java 8.

Alla on muutamia toiminnallisia käyttöliittymiä, joita käytetään Java 8:

  • BinaarinenOperaTor
  • Kuluttaja
  • Toiminto
  • Toimittaja
  • UnaarinenOperaTor
  • BiFunction
  • Predikaatti

30) Mitkä ovat tärkeimmät ajan ja päivämäärän API-luokat?

Alla on lueteltu tärkeimmät ajan ja päivämäärän API-luokat, joita käytetään Java 8:

  • Paikallinen aika
  • LocalDateTime
  • LocalDate

31) Anna Lambda-lausekkeen perusrakenne/syntaksi.

Lambda-lausekkeen perusrakenne/syntaksi on:

(arugument - list) - > {body}

Täällä

  • Argumentti – lista: Voit pitää sen täytettynä tai tyhjänä.
  • Nuolimerkki: Se on hyödyllinen linkitettäessä runkoilmauksia ja argumentteja – lista.
  • Runko: Se koostuu lauseista ja lausekkeista lambda-lausekkeelle.

32) Mitkä ovat Streamin pääominaisuudet?

Alla on Streamin tärkeimmät ominaisuudet:

  • pipelining
  • Lähde
  • Aggregaatti OperaTIONS
  • Elementtien järjestys
  • Automaattiset iteraatiot

33) Mitkä ovat yleisimmät välioperaatiot?

Jotkut yleisimmistä väliilmaisutyypeistä ovat:

  • Erillinen ()
  • Ohita (pitkä n)
  • Suodatin (predikaatti)
  • Raja (pitkä n)
  • Kartta (toiminto)

34) Mitkä ovat yleisimmät päätetoimintojen tyypit?

Alla on yleisimmät päätetoimintojen tyypit:

  • Laskea
  • Vähentää
  • Min
  • AllMatch
  • max
  • AnyMatch
  • Arraylle

35) Missä menetelmäviittaus on Java 8?

Menetelmäviittaus kohdassa Java 8 on tapa viitata toiminnalliseen käyttöliittymään. Se tunnetaan paljon helpompana ja tehokkaampana lambda-ilmaisun muotona. Kun käytät lambda-lausekkeita viittaamaan menetelmään, voit korvata sen menetelmäviittauksella.


36) Miten sisäiset ja ulkoiset iteraatiot eroavat toisistaan?

Alla on erot sisäisen ja ulkoisen iteroinnin välillä:

Sisäinen iteraatio Ulkoinen iteraatio
Se tunnetaan myös passiivisena tai implisiittisenä iteraattorina. Se tunnetaan myös aktiivisena tai eksplisiittisenä iteraattorina.
Sitä kuljetetaan sisäisesti erilaisissa esineissä. Sitä kuljetetaan ulkoisesti erilaisilla esineillä.
Sitä käytetään toiminnallisessa ohjelmoinnissa. Sitä käytetään olio-ohjelmoinnissa.
Se aiheuttaa erittäin vähemmän virheitä. Koodaus on kuitenkin välttämätöntä. Se aiheuttaa enemmän virheitä. Koodausta ei kuitenkaan tarvita.

37) Onko tyyppipäätelmää käytetty aiemmissa versioissa Java?

Java otettiin käyttöön tyyppihäiriöitä Java 5 mutta erittäin rajoitettu pääsy. Mutta vuosien mittaan tyyppihäiriöiden mahdollisuudet ovat lisääntyneet, ja se on parhaimmillaan Java 8.


38) Kirjoita muistiin a Java 8 ohjelma, joka löytää virran minimi- ja enimmäismäärän.

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

lähtö:

Minimum number: 1
Maximum number: 9

39) Kuinka voidaan yhdistää useita merkkijonoja StringJoiner-luokan kautta?

StringJoiner auttaa yhden tai useamman merkkijonon yhdistämisessä, ja se voidaan tehdä tietyn liittimen tai erottimen kautta. Esimerkiksi useita merkkijonoja voidaan yhdistää erottamalla ne pilkulla (,).

CSV-merkkijonon luomiseksi voidaan luoda täydellinen polku tietylle hakemistolle Linuxissa, mikä voidaan tehdä yhdistämällä merkkijono vinoviivalla "/".


40) Mikä on paras vaihtoehto lambda-lausekkeille? Java 8?

Yleensä käytämme lambda-lausekkeita luodaksemme anonyymejä menetelmiä, jotka auttavat saamaan halutun tuloksen. On kuitenkin tapauksia, joissa lambda-lausekkeet eivät toimi ja käyttävät vain olemassa olevaa menetelmää.

Joten tämän välttämiseksi voit käyttää menetelmäviittausta, joka voi auttaa saamaan halutun tulosteen. Menetelmän viittaus on kuvattu käyttämällä: (kaksoispiste) -symbolia.