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

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 interferencija povezana je s jednom apstraktnom metodom 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 apstraktni 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 naziv i ponekad se naziva anonimna funkcija jer nema vlastitu vrstu informacija. Možete ga koristiti prema svojim potrebama, a vrlo je koristan za ponavljanje, filtriranje i izvlačenje bilo kojih 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 grupiranja različitih operacija u cjelini. To možete postići kategoriziranjem njegovih tokovnih operacija u dva dijela. Srednje 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 sa samo jednim sažetkom naziva se funkcionalnim sučeljem. Također je poznata kao metoda jednog sažetka ili SAM. Međutim, napomena @FunctionalInterface nije obavezna i može se koristiti čak i ako je nema. Proširuje se na drugo sučelje ako nema sažetak.


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 zadržavanje svih sučelja u zajedničkom sučelju umjesto specifičnih 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 jedinstvena je vrsta heap prostora koji se koristi za praćenje 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?

Možete upotrijebiti lambda izraz za implementaciju apstraktne metode funkcionalnog sučelja 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:

  • Treba imati samo jednu apstraktnu metodu.
  • Možete imati koliko god je zadanih metoda jer nije apstraktno, a implementacija je ranije dana istom.
  • Apstraktna 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 klasa implementacije za ovo sučelje može imati implementaciju za ovu apstraktnu metodu koja je ili definirana samom klasom implementacije ili je preuzeta iz superklase.


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 prisutna je u sučelju i uključuje implementaciju. Ova metoda je korisna u dodavanju nove funkcionalnosti danom sučelju, a istovremeno zadržava kompatibilnost sa prethodnim verzijama zajedno sa svojim 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:


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).