35 + Java 8 pitanja i odgovora za intervju (2026.)

Bio tehniฤar ili bilo koji drugi profesionalac, intervjui uvijek podiลพu adrenalin od nervoze. Meฤ‘utim, kako biste se istaknuli iz gomile, vaลพno je usavrลกiti svoje vjeลกtine i kladiti se na svoje sposobnosti. ล toviลกe, posjedovanje ฤesto postavljanih pitanja Java 8 pitanja za intervju i odgovora mogu vam pomoฤ‡i.

Stoga, duboko prouฤite ova pitanja za intervjue za java 8 za iskusne i poฤetnike kako biste uspjeลกno obavili svoje nadolazeฤ‡e intervjue.

Java 8 pitanja za intervju za brucoลกe i iskusne

1) Java 8 spada u koju programsku paradigmu?

Java 8 spada u sljedeฤ‡u paradigmu programiranja:

  • Objektno ili klasno orijentirani programski jezik.
  • Funkcionalni programski jezik.
  • Odreฤ‘eni proceduralni programski jezik.
  • Logiฤki programski jezik.

2) Zaลกto treba koristiti izbornu klasu?

Izborna klasa je novouvedena klasa spremnika koja je korisna u demonstriranju postojeฤ‡ih ili nepostojeฤ‡ih izbornih vrijednosti. Njegova glavna prednost je izbjegavanje null & void provjere i olakลกava metode korisne u provjeri postojanja vrijednosti za odreฤ‘enu varijablu.


Java 8 pitanja za intervju

3) Navedite nekoliko nedavnih znaฤajki predstavljenih u Java 8.

Ispod su najnovije znaฤajke koje su predstavljene u Java 8:

  • Lambda izrazi: To je Java funkciju koju moลพete dijeliti ili na koju se moลพete odnositi kao na objekt.
  • Interferencija metode: Koristi funkciju kao kriterij za implementaciju metode.
  • Funkcionalne smetnje: Svaka funkcionalna smetnja povezana je s jednim trbuลกnim miลกiฤ‡em.tract metoda koja je poznata kao funkcionalna metoda.
  • Zadana metoda: Korisno je u implementaciji metoda u suฤelja koja pomaลพu omoguฤ‡iti potencijal 'evolucije suฤelja'.
  • Datum i vrijeme API: To je poboljลกana, ali nadahnuta verzija java time API-ja koja rjeลกava nedostatke prethodne verzije.
  • Stream API naziva se trbuลกni miลกiฤ‡itract sloj, koji pomaลพe u usmjeravanju podataka za obradu.
  • Izborni: Klasa omotaฤa korisna je u provjeri nultih vrijednosti i obradi daljnjih podataka.
  • JavaSkripta i Nashorn Engine: To je poboljลกana verzija JavaScript Engine, koji je koristan za omoguฤ‡avanje njegove funkcionalnosti u Java, zamijenivลกi Rhino.

4) Navedite prednosti koriลกtenja jave 8

Evo nekih prednosti koriลกtenja Java 8:

  • Pomaลพe u izradi aplikacija puno brลพe i na lakลกi naฤin.
  • Pruลพa vrlo stabilan ambijent za programere.
  • Saลพeti, viลกekratno upotrebljivi i lako razumljivi kodovi.
  • Poboljลกana i uฤinkovita podrลกka.
  • Lako se prenosi na razliฤite operativne sustave.
  • Minimalni standardni kodovi.

5) ล to je zbirka i po ฤemu se razlikuje od toka?

Zbirka je baza podataka u memoriji koja biljeลพi sve vrijednosti prema trenutnoj strukturi podataka. Dakle, prije nego ลกto ga dodate u zbirku, vaลพno je izraฤunati svaki od njih. Dok je tok vizualno fiksirana struktura podataka u kojoj moลพemo izraฤunati elemente prema naลกim potrebama.


6) ล to je Lambada izraz?

Lambada izraz je vrsta funkcije koja nema ime i ponekad se naziva anonimnom funkcijom jer nema vlastitu vrstu informacija. Moลพete ga koristiti prema svojim potrebama i vrlo je koristan za ponavljanje, filtriranje i objaลกnjavanje.tracprikupljanje bilo kakvih podataka iz zbirke.

Primjer:

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

Izlaz:

Charlie

7) Definirajte cjevovod toka

Cjevovod toka je metoda grupiranjaping potpuno razliฤite operacije. To moลพete postiฤ‡i kategorizacijom njegovih stream operacija u dva dijela. Meฤ‘uoperacije i terminalne operacije.

Kad god se izvrลกi meฤ‘uoperacija, ona vraฤ‡a instancu u cjevovod toka. Stoga svaki korisnik moลพe postaviti iracionalan broj meฤ‘uoperacija kako bi pojednostavio podatke i konaฤno formirao cjevovod za obradu.

ล toviลกe, da biste prekinuli cjevovode, potrebno je imati operaciju terminala na kraju procesa.


8) U ฤemu su predikat i potroลกaฤ Java 8?

Predikat je funkcionalno suฤelje koje obiฤno prima argumente i dohvaฤ‡a Booleovu vrijednost. Moลพete ga koristiti za primjenu filtra za kolekciju objekata.

S druge strane, potroลกaฤ se naziva ugraฤ‘enim funkcionalnim suฤeljem koje se nalazi u Java.util.function paket. Moลพete ga koristiti za konzumiranje bilo kojeg objekta, a on uzima ulaznu vrijednost i ne daje niลกta.


9) Zaลกto se metoda peek () koristi u Java 8?

Metoda peek() pomaลพe u podrลกci otklanjanju pogreลกaka, pri ฤemu se ลพeli uoฤiti elemente dok teลพe da teku iz odreฤ‘ene toฤke u cjevovodu. To je prikaz naลกeg opaลพanja kako svaki element prolazi.

Sintaksa: public Object peek()


10) ล to vas ฤini idealnim kandidatom za Java uloga programera?

Evo nekoliko vaลพnih kvaliteta koje vas mogu uฤiniti idealnim kandidatom za Java uloga programera:

  • Trebali biste imati sposobnost pisanja jasnih, lako razumljivih i uฤinkovitih kodova.
  • Duboko razumijevanje obrazaca i koncepata "OOP ili objektno orijentirano programiranje".
  • Dobro poznavanje razliฤitih arhitektonskih i dizajnerskih obrazaca.
  • Upoznavanje s Java obrasci istodobnosti.
  • Iskustvo i znanje rada s razliฤitim okvirima web aplikacija kao ลกto su Spark i Igraj.
  • Temeljno znanje o Java Virtualni stroj ili JVM, njegovi nedostaci, zaobilazno rjeลกenje itd.
  • Dobro iskustvo u koriลกtenju ugraฤ‘enih i vanjskih baza podataka.

11) Objasnite 'Funkcionalno suฤelje'.

Suฤelje s samo jednim absomtract se naziva funkcionalnim suฤeljem. Takoฤ‘er je poznato kao Single Abstract Metoda ili SAM. Meฤ‘utim, anotacija @FunctionalInterface je opcionalna i moลพe se koristiti ฤak i ako nije tamo. Proลกiruje se na drugo suฤelje ako nema nikakvih abstract.


12) Zaลกto su potrebne statiฤke metode Java 8?

Referenca statiฤne metode naziva se usluลพna ili pomoฤ‡na metoda, koja je povezana sa suฤeljem. To je takoฤ‘er klasa koja nije povezana ni s jednim objektom.

Evo razloga za koriลกtenje statiฤke metode u Java:

  • Korisno za odrลพavanje i proลกirenje API-ja.
  • Ukljuฤuje jasnu i konciznu podjelu odgovornosti i ne morate imati jednu klasu pomoฤ‡nih programa da biste imali zbirke pomoฤ‡nih programa.
  • Korisno za keeping sva suฤelja u zajedniฤkom suฤelju, a ne specifiฤna suฤelja.

13) Koje su prednosti Nashorna?

Nashorn je najnapredniji i najnoviji JavaScript godine uveden motor za obradu Java 8. Ranije se temeljio na Mozilla Rhino. Omoguฤ‡uje poboljลกanu usklaฤ‘enost s ECMA-om JavaSkripta. Brลพi je od prethodnih verzija.


14) Po ฤemu se API za prikupljanje i API za strujanje razlikuju?

Evo nekoliko vaลพnih razlika izmeฤ‘u Collection API-ja i Stream API-ja

API zbirke Stream API
Collection API je prvi put koriลกten u Java 1.2 Stream API je prvi put predstavljen u Java JI 8.
Moลพete ga koristiti za pohranu neograniฤenog broja podataka. Moลพete ga koristiti za izraฤunavanje neograniฤenih podataka.
API za prikupljanje omoguฤ‡uje vam koriลกtenje Iteratora i Spilteratora za ponavljanje podataka. Stream API omoguฤ‡uje vam upotrebu Iteratora i Spilteratora za ponavljanje podataka.
Collection API-ju je lako pristupiti. In-stream API, ne postoji izravan naฤin za dosezanje odreฤ‘enih elemenata.
Takoฤ‘er olakลกava obradu prema vaลกim potrebama. Stream API moลพe se obraditi samo jednom.

15) Opiลกite PermGenSpace i MetaSpace.

PermGen ili Permanent Generation Space je jedinstvena vrsta heap prostora koji se koristi za keeping track pohranjenih metapodataka koji su sada uklonjeni u Java 8.

S ovom novom verzijom, pohranjivanje metapodataka vrลกit ฤ‡e se u sliฤnoj memoriji poznatoj kao "MetaSpace". Nije prenosiv Java Heap memorija i poboljลกana je verzija PermGena u aspektima automatskog podeลกavanja, skupljanja smeฤ‡a itd.


16) Kako se stvara funkcionalno suฤelje Java 8?

Za implementaciju abs funkcije moลพete koristiti lambda izraz.tract metoda funkcionalnog suฤelja u Java 8. Ispod je primjer kodiranja istog:

Primjer

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

Izlaz:

Hello, world!

17) Koje su razlike i sliฤnosti izmeฤ‘u funkcije i predikata u Java 8?

Ovdje su razlike izmeฤ‘u funkcije i predikata u Java 8:

  • Funkcija je korisna u transformaciji, dok se predikat moลพe koristiti za testiranje bilo kojeg uvjeta.
  • Funkcija moลพe primiti argument i dati rezultat, dok predikat takoฤ‘er moลพe primiti argument, ali daje samo Booleovu vrijednost.
  • Funkcija je oznaฤena sa , a Predikat je oznaฤen samo sa , gdje je T tip funkcije, a R rezultat.

Ispod su sliฤnosti izmeฤ‘u funkcije i predikata:

  • I funkcija i predikat su funkcionalna suฤelja.
  • I funkcija i predikat su funkcije s jednim argumentom.

18) Na primjeru objasnite razliku izmeฤ‘u skip(long) i limit(long).

Preskakanje (dugo) je meฤ‘uoperacija koja dohvaฤ‡a zaostale elemente nakon eliminacije poฤetnih n elemenata odreฤ‘enog toka.

Primjer:

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

Izlaz:

Charlie
Dave
Eve

Limit (long) dohvaฤ‡a tok elemenata odreฤ‘ene veliฤine

Primjer:

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

Izlaz:

AliceBob
Charlie

19) Koja je situacija najprikladnija za koriลกtenje stream API-ja Java 8?

Moลพete koristiti stream API u Java 8. Postoji potreba za sljedeฤ‡im operacijama:

  • Moลพete izvrลกiti paralelnu obradu.
  • Za izvrลกavanje lijenih operacija
  • Za obavljanje operacija baze podataka
  • Koristi se za interne iteracije.
  • Za pisanje programiranja u funkcionalnom stilu
  • Moลพete koristiti za koriลกtenje cjevovodnih operacija.

20) Koja je funkcija zakljuฤivanja tipa?

Tip Inference pomaลพe prevoditelju u identificiranju ili prepoznavanju tipova argumenata samo imajuฤ‡i pregled odgovarajuฤ‡e deklaracije i pozivanja metode.


21) Koji je najlakลกi naฤin za prepoznavanje i uklanjanje dupliciranih elemenata s popisa u Java 8?

Najlakลกi naฤin za prepoznavanje i uklanjanje dupliciranih elemenata je koriลกtenjem operacije toka i provoฤ‘enjem prikupljanja, nakon ฤega slijedi koriลกtenje metode Collections.toSet().


22) Koje su smjernice za funkcionalno suฤelje?

Ispod su smjernice za funkcionalno suฤelje koje je meฤ‘u najฤeลกฤ‡e traลพenim Java 8 programskih pitanja:

  • Trebao bi imati samo jedan trbuลกnjaktract metoda.
  • Moลพete imati onoliko zadanih metoda koliko god ลพelite jer nije apsolutnotract, a implementacija je dana ranije od strane istog.
  • Trbuลกnjacitract metoda, glavni element javnih metoda iz Java.lang, poznat je u funkcionalnom suฤelju. Object se joลก uvijek smatra korisnim suฤeljem.

Biljeลกka: Objaลกnjenje za to je da svaka implementacijska klasa za ovo suฤelje moลพe imati implementaciju za ovaj abstract metoda koja je ili definirana samom implementacijskom klasom ili preuzeta iz nadklase.


23) Napravite razliku izmeฤ‘u spliteratora i iteratora.

Evo nekih razlika izmeฤ‘u spliteratora i iteratora:

Spliterator iterator
Uveden je godine Java 1.2. Uveden je godine Java 1.8.
Samo iterira sve elemente zasebno. Popreฤno prelazi sve elemente odvojeno, kao i skupno.
Djeluje kao iterator za kompletnu kolekciju API-ja. Djeluje kao iterator za API toka i zbirke.
Neฤ‡e podrลพavati paralelno programiranje. Podrลพava paralelno programiranje.

24) Kako moลพete pozvati zadanu metodu suฤelja u klasi?

Zadana kljuฤna rijeฤ, koja je prisutna na poฤetku potpisa metode, koristi se za oznaฤavanje deklaracije metode u suฤelju kao zadane metode. Moลพete preskoฤiti javni modifikator jer je svaka deklaracija metode u suฤelju, ukljuฤujuฤ‡i zadane metode, automatski javna.


25) Definirajte zadanu metodu. Kada ga moลพete koristiti?

Zadana metoda je prisutna u suฤelju i ukljuฤuje implementaciju. Ova metoda je korisna za dodavanje novih funkcionalnosti odreฤ‘enom suฤelju, a istovremenoping unatrag kompatibilna zajedno s klasama koje su veฤ‡ implementirane u suฤelju.


26) Kako se stvaraju tokovi u Java, i je li to jedno od najฤeลกฤ‡e postavljanih pitanja za intervju za java 8 stream?

Ulazi Java opisuju slijed objekata iz odreฤ‘enog izvora, poput zbirke, koji ฤ‡e podrลพavati agregatne operacije. Moลพete ga koristiti za prikupljanje, filtriranje, ispis i promjenu jedne strukture podataka u drugu.

Evo primjera kako stvoriti streamove 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);
    }
}

Izlaz:

Alice
Bob
Charlie
Dave
Eve

27) ล to su Map i FlatMap stream operacije?

Map i FlatMap smatraju se operacijama toka i srednjeg toka koji prihvaฤ‡aju funkciju. Takoฤ‘er pomaลพe u primjeni zadane funkcije na ostale elemente.


28) Zaลกto trebamo mijenjati Java programski jezik ฤesto?

Moramo promijeniti Java programski jezik ฤesto zbog sljedeฤ‡ih razloga:

  • Moลพete koristiti znaฤajke Funkcionalno programiranje.
  • Za uฤinkovito koriลกtenje najnovije tehnologije viลกejezgrenih CPU-a.

29) Navedite nekoliko funkcionalnih suฤelja koja se koriste u Java 8.

Ispod je nekoliko funkcionalnih suฤelja koja se koriste u Java 8:

  • BinarniOperahumka
  • potroลกaฤ
  • funkcija
  • Dobavljaฤ
  • UnarnoOperahumka
  • Bifunkcija
  • Predikat

30) Koje su glavne API klase za vrijeme i datum?

Ispod su navedene glavne API klase za vrijeme i datum koje se koriste u Java 8:

  • Lokalno vrijeme
  • LocalDateTime
  • Lokalni datum

31) Navedite osnovnu strukturu/sintaksu Lambda izraza.

Osnovna struktura/sintaksa Lambda izraza je:

(arugument - list) - > {body}

Ovdje,

  • Argument โ€“ โ€‹โ€‹popis: Moลพete ga drลพati ispunjenog ili praznog.
  • ลฝeton strelice: Koristan je u povezivanju izraza tijela i argumenata โ€“ popis.
  • Tijelo: Sastoji se od iskaza i izraza za lambda izraz.

32) Koje su glavne karakteristike Streama?

Ispod su glavne karakteristike Streama:

  • cjevovod
  • izvor
  • skupina Operama
  • Redoslijed elemenata
  • Automatske iteracije

33) Koje su najฤeลกฤ‡e srednje operacije?

Neke od najฤeลกฤ‡ih vrsta posrednih izraza su:

  • razliฤit ()
  • Preskoฤi (dugo n)
  • Filtar (predikat)
  • Ograniฤenje (dugo n)
  • Karta (funkcija)

34) Koje su najฤeลกฤ‡e vrste terminalskih operacija?

U nastavku su navedene najฤeลกฤ‡e vrste terminalskih operacija:

  • Raฤunati
  • Smanjiti
  • Min
  • AllMatch
  • maksimum
  • AnyMatch
  • Za niz

35) ล to je referenca metode u Java 8?

Referenca metode u Java 8 je naฤin upuฤ‡ivanja na funkcionalno suฤelje. Poznat je kao puno lakลกi i uฤinkovitiji oblik lambda izraza. Kada koristite lambda izraze za referencu metode, moลพete je zamijeniti referencom metode.


36) Po ฤemu se razlikuju unutarnje i vanjske iteracije?

Ispod su razlike izmeฤ‘u unutarnje i vanjske iteracije:

Interna iteracija Vanjska iteracija
Takoฤ‘er je poznat kao pasivni ili implicitni iterator. Takoฤ‘er je poznat kao aktivni ili eksplicitni iterator.
Nosi se interno na raznim predmetima. Izvana se prenosi na raznim predmetima.
Koristi se u funkcionalnom programiranju. Koristi se u objektno orijentiranom programiranju.
Uzima vrlo manje greลกaka. Meฤ‘utim, kodiranje je neophodno za to. Uzrokuje viลกe greลกaka. Meฤ‘utim, kodiranje nije potrebno.

37) Je li zakljuฤak tipa koriลกten u prethodnim verzijama Java?

Java uvedene smetnje tipa u Java 5 ali s vrlo ograniฤenim pristupom. No tijekom godina, moguฤ‡nosti interferencije tipa su se poveฤ‡ale, a najbolje je u Java 8.


38) Zapiลกite a Java 8 program koji moลพe pronaฤ‡i minimalni i maksimalni broj Streama.

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

Izlaz:

Minimum number: 1
Maximum number: 9

39) Kako se moลพe spojiti viลกe nizova putem klase StringJoiner?

StringJoiner pomaลพe u spajanju jednog ili viลกe nizova, a to se moลพe uฤiniti putem odreฤ‘enog spojnika ili razdjelnika. Na primjer, moguฤ‡e je spojiti brojne nizove odvajajuฤ‡i ih zarezom (,).

Za stvaranje CSV niza, moลพe se generirati puna staza za odreฤ‘eni direktorij u Linuxu ลกto se moลพe uฤiniti spajanjem niza uz pomoฤ‡ kose crte naprijed โ€œ/.โ€


40) Koja je najbolja alternativa lambda izrazima u Java 8?

Opฤ‡enito, koristimo lambda izraze za stvaranje anonimnih metoda koje pomaลพu u dobivanju ลพeljenog rezultata. Meฤ‘utim, postoje sluฤajevi u kojima lambda izrazi ne rade i koriste samo postojeฤ‡u metodu.

Dakle, da biste to izbjegli, moลพete koristiti referencu metode koja moลพe pomoฤ‡i u dobivanju ลพeljenog rezultata. Referenca metode prikazana je pomoฤ‡u simbola: (dvotoฤka).

Saลพmite ovu objavu uz: