Pregledajte ovih 50 pitanja kako biste ispunili svoj intervju za programiranje Java

Popis često postavljanih Java pitanja s programiranja razgovora za posao.

Pozdrav svima! Tijekom posljednjih nekoliko godina dijelim puno pitanja i rasprava o Java Intervjuu pojedinačno. Mnogi su moji čitatelji zatražili da ih okupim kako bi ih imali na istom mjestu. Ovaj je post rezultat toga.

Ovaj članak sadrži više od 50 pitanja o Java Intervjuu koji pokrivaju sve važne teme kao što su jezgrene osnove Java, Java Collection Framework, Java Multithreading and Concurrency, Java IO, JDBC, JVM Internals, Problemi s kodiranjem, Objektno orijentirano programiranje itd.

Pitanja se također preuzimaju iz raznih intervjua i nikako nisu vrlo teška. Možda ste ih već vidjeli u telefonu ili u razgovoru licem u lice.

Pitanja su također vrlo korisna za pregled važnih tema poput multithreadinga i zbirki. Također sam podijelio neke korisne resurse za daljnje učenje i usavršavanje poput The Complete Java MasterClass kako bih popravio i popunio praznine u vašim Java vještinama.

Pa što čekamo? Evo popisa najčešće postavljanih Java pitanja u intervjuima kako za početnike tako i za iskusne Java programere.

50+ Java intervjua za 2 do 3 godine iskusni programeri

Dakle, bez gubljenja više vremena, evo mog popisa nekih od često postavljanih Core Java Intervju pitanja za programere početnike. Ovaj se popis fokusira na početnike i manje iskusne programere, poput nekoga s 2 do 3 godine iskustva u Javi.

1) Kako Java postiže neovisnost o platformi? (odgovor)

savjet: bytecode i Java Virtual Machine

2) Što je ClassLoaderu Javi? (odgovor)

savjet: dio JVM-a koji učitava bajtkodove za klase. Možete sami napisati.

3) Napišite Java program kako biste provjerili je li broj paran ili neparan? (odgovor)

savjet: možete koristiti bitni operator, poput bitnog I, ne zaboravite, čak i broj ima nulu na kraju u binarnom formatu, a neparni broj ima 1 na kraju.

4) Razlika između ArrayListi HashSetu Javi? (odgovor)

savjet: ovdje su primjenjive sve razlike između Listi Set, npr. naručivanje, duplikati, nasumično pretraživanje itd. Pogledajte Osnove Jave: Zbirke Richarda Warburtona kako biste saznali više o ArrayList, HashSet i drugim važnim zbirkama na Javi.

5) Što je dvostruko provjereno zaključavanje u Singletonu? (odgovor)

savjet: dvostruka provjera jesu li instance inicijalizirane ili ne, prvo bez zaključavanja i drugo s zaključavanjem.

6) Kako u Javi stvoriti Singleton siguran za nit? (odgovor)

savjet: mnogo načina, poput upotrebe Enuma ili dvostruko provjerenog uzorka zaključavanja ili ugniježđene statičke klase.

7) Kada koristiti hlapljivu varijablu u Javi? (odgovor)

savjet: kada trebate uputiti JVM da varijablu može mijenjati više niti i dati savjet JVM-u koji ne predmemorira svoju vrijednost.

8) Kada koristiti privremenu varijablu u Javi? (odgovor)

savjet: kada želite napraviti varijablu koja se ne može serirati u klasi, koja implementira sučelje koje se može serirati. Drugim riječima, možete ga koristiti za varijablu čiju vrijednost ne želite spremiti. Pogledajte Potpuni Java MasterClass da biste saznali više o privremenim varijablama u Javi.

9) Razlika između privremene i hlapljive varijable u Javi? (odgovor)

savjet: potpuno drugačiji, jedan se koristi u kontekstu serializacije, dok se drugi koristi istovremeno.

10) Razlika između serializiranog i eksternaliziranog u Javi? (odgovor)

savjet: Externalizable vam daje veću kontrolu nad postupkom serializacije.

11) Možemo li nadjačati privatnu metodu u Javi? (odgovor)

savjet: Ne, jer to nije vidljivo u podrazredu, primarni uvjet za nadjačavanje metode u Javi.

12) Razlika između Hashtablei HashMapu Javi? (odgovor)

savjet: nekoliko, ali najvažnije je Hashtable, što je sinkronizirano, a HashMapnije. Također je naslijeđen i spor u usporedbi s HashMap.

13) Razlika između Listi Set u Javi? (odgovor)

hint: Listporedan je i omogućuje dupliciranje. Setnije uređen i ne dopušta ponovljene elemente.

14) Razlika između ArrayListi Vectoru Javi (odgovor)

savjet: Mnogo, ali najvažnije je da ArrayListnije sinkronizirano i brzo, a Vectorsinkronizirano i sporo. To je također naslijeđena klasa Hashtable.

15) Razlika između Hashtablei ConcurrentHashMapu Javi? (odgovor)

savjet: skalabilnije. Da biste saznali više, pogledajte Osnove Java: Zbirke Richarda Warburtona.

16) Kako ConcurrentHashMappostiže skalabilnost? (odgovor)

savjet: dijeljenjem karte na segmente i zaključavanjem samo tijekom operacije upisivanja.

17) Koje ćete dvije metode poništiti da Objectbi se koristile kao Keyu HashMap? (odgovor)

savjet: jednako i hashcode

18) Razlika između čekanja i spavanja u Javi? (odgovor)

savjet: wait()Metoda otpušta bravu ili monitor, dok spavanje ne.

19) Razlika između notifyi notifyAllu Javi? (odgovor)

savjet: notifyobavještava da jedna slučajna nit čeka to zaključavanje dok notifyAllobavještava sve niti koje čekaju monitor. Ako ste sigurni da samo jedna nit čeka, tada upotrijebite notify, inače notifyAllje bolje. Pogledajte mini-tečaj Threading EssentialsJava Champion Heinz Kabutz kako bi saznao više o osnovama navoja.

20) Zašto poništavate hashcode, zajedno s equals()Javom? (odgovor)

savjet: biti usklađen s jednakošću i hashcode ugovorom, što je potrebno ako planirate pohraniti svoj objekt u klase kolekcije, npr . HashMapili ArrayList.

21) Koji je faktor opterećenja HashMapsredstava? (odgovor)

savjet: Prag koji pokreće promjenu veličine HashMapuglavnom je 0,75, što znači da se HashMapsama mijenja ako je puna 75 posto.

22) Razlika između ArrayListi LinkedListu Javi? (odgovor)

savjet: isto kao niz i povezani popis, jedan omogućuje nasumično pretraživanje, dok drugi ne. Umetanje i brisanje lako je na povezanom popisu, ali pretraživanje je lako na nizu. Pogledajte Osnove Jave: Zbirke , tečaj Richarda Warburtona o Pluralsightu, kako biste saznali više o osnovnoj strukturi podataka Zbirke u Javi.

23) Razlika između CountDownLatchi CyclicBarrieru Javi? (odgovor)

savjet: Možete ponovno upotrijebiti CyclicBarriernakon probijanja zapreke, ali ne možete je ponovno koristiti CountDownLatchnakon što brojanje dosegne nulu.

24) Kada upotrebljavate Runnablevs Threadu Javi? (odgovor)

savjet: uvijek

25) Koje je značenje Enum-a koji je zaštićen od tipa u Javi? (odgovor)

savjet: To znači da ne možete Enum varijabli dodijeliti instancu različitog tipa Enum. npr. ako imate varijablu poput DayOfWeekdana, tada joj ne možete dodijeliti vrijednost iz DayOfMonthenum.

26) Kako Autoboxing of Integer radi na Javi? (odgovor)

savjet: Korištenjem valueOf()metode u Javi.

27) Razlika između PATHi Classpathu Javi? (odgovor)

savjet: PATHkoristi ga operativni sustav dok Classpathga JVM koristi za lociranje Java binarnih datoteka, npr. JAR datoteka ili datoteka klase. Vidi Java Osnove: Core platforme kako bi saznali više o PATH, Classpathi druge Java varijablu okruženja.

28) Razlika između preopterećenja metode i nadjačavanja u Javi? (odgovor)

savjet: Nadjačavanje se događa u podklasi, dok se preopterećenje događa u istoj klasi. Također, nadjačavanje je runtime aktivnost dok se preopterećenje rješava u vrijeme kompajliranja.

29) Kako spriječiti podklasiranje klase u Javi? (odgovor)

savjet: samo učinite njegov konstruktor privatnim

30) Kako ograničavate upotrebu klase od strane klijenta? (odgovor)

savjet: učinite konstruktor privatnim ili izbacite iznimku iz konstruktora

31) Razlika između StringBuilderi StringBufferu Javi? (odgovor)

savjet: StringBuildernije sinkroniziran dok StringBufferje sinkroniziran.

32) Razlika između polimorfizma i nasljeđivanja u Javi? (odgovor)

savjet: Nasljeđivanje omogućuje ponovnu upotrebu koda i gradi odnos između klase, što zahtijeva Polimorfizam, koji pruža dinamičko ponašanje. Pogledajte Osnove Java: Objektno orijentirani dizajnda biste saznali više o OOP značajkama.

33) Možemo li nadjačati statičku metodu u Javi? (odgovor)

savjet: Ne, jer se nadjačavanje rješava za vrijeme izvođenja, dok se poziv statičke metode rješava u vrijeme kompajliranja.

34) Možemo li pristupiti privatnoj metodi u Javi? (odgovor)

savjet: da, u istom razredu, ali ne izvan razreda

35) Razlika između sučelja i apstraktne klase u Javi? (odgovor)

savjet: u Javi 8 razlika je nejasna. Međutim, Java klasa i dalje može implementirati više sučelja, ali može proširiti samo jednu klasu.

36) Razlika između DOM i SAX parsera u Javi? (odgovor)

savjet: DOM učitava cijelu XML datoteku u memoriju, dok SAX ne. Analizator je zasnovan na događajima i može se koristiti za raščlambu velike datoteke, ali DOM je brz i treba ga preferirati za male datoteke.

37) Razlika između ključne riječi bacanje i bacanje u Javi? (odgovor)

hint: throws deklarira koju iznimku metoda može baciti u slučaju pogreške, ali throw ključna riječ zapravo izbacuje iznimku. Pogledajte Osnove Jave: Rukovanje iznimkama da biste saznali više o rukovanju iznimkama u Javi.

38) Razlika između sigurnih i brzih iteratora u Javi? (odgovor)

savjet: sigurnosno ispravno ne baca ConcurrentModificationExceptiondok to fail-fastučini kad god otkrije vanjsku promjenu na osnovnoj kolekciji dok se njome prevlači.

39) Razlika između iteratora i nabrajanja u Javi? (odgovor)

savjet: Iterator vam također daje mogućnost uklanjanja elementa tijekom iteracije, dok Enumeration to ne dopušta.

40) Što je IdentityHashMapu Javi? (odgovor)

hint: A Map, koji koristi ==operator jednakosti za provjeru jednakosti umjesto equals()metode.

41) Što je Stringbazen u Javi? (odgovor)

savjet: Skup Stringliterature. Zapamtite da je premješteno u hrpu iz perm gen prostora u JDK 7.

42) Može li Serializableklasa sadržavati polje koje se ne može serirati u Javi? (odgovor)

savjet: Da, ali morate ga učiniti statičnim ili privremenim.

43) Razlika između ovog i super u Javi? (odgovor)

savjet: ovo se odnosi na trenutnu instancu, dok se super odnosi na instancu superklase.

44) Razlika između Comparatori Comparableu Javi? (odgovor)

hint: Comparatordefinira prilagođeni redoslijed dok Comparabledefinira prirodni redoslijed objekata, npr. abecedni redoslijed za String. Pogledajte Potpuni Java MasterClass da biste saznali više o sortiranju u Javi.

45) Razlika između java.util.Datei java.sql.Dateu Javi? (odgovor)

savjet: prethodni sadrži i datum i vrijeme, dok kasnije sadrži samo datumski dio.

46) Zašto su metode čekanja i obavještavanja deklarirane u Objectklasi na Javi? (odgovor)

savjet: jer zahtijevaju zaključavanje koje je dostupno samo objektu.

47) Zašto Java ne podržava više nasljeđivanja? (odgovor)

savjet: Ne podržava zbog lošeg iskustva sa C ++-om, ali s Javom 8 u određenom smislu Typepodržava - u Java-i sada nije podržano samo više nasljedstava .

48) Razlika između potvrđene i neprovjerene iznimke u Javi? (odgovor)

savjet: U slučaju potvrđenog, izuzetak morate obraditi pomoću catch bloka, dok je u slučaju neoznačenog na vama; kompajliranje vam neće smetati.

49) Razlika između pogreške i iznimke u Javi? (odgovor)

savjet: Umoran sam od tipkanja, provjerite odgovor

50) Razlika između uvjeta utrke i mrtve točke u Javi? (odgovor)

savjet: obje su pogreške koje se javljaju u istodobnoj aplikaciji, jedna se javlja zbog rasporeda niti, dok se druge javljaju zbog lošeg kodiranja. Pogledajte Multithreading i paralelno računanje na Javi da biste saznali više o mrtvoj točki, uvjetima utrke i drugim problemima s multithreadingom.

Završne napomene

Hvala, stigli ste do kraja članka ... Sretno s programerskim intervjuom! To sigurno neće biti lako, ali slijedeći ovaj putokaz i vodič, korak ste bliže tome da postanete inženjer DevOpsa.

Ako vam se sviđa ovaj članak, podijelite sa svojim prijateljima i kolegama i ne zaboravite pratiti Javinpaula na Twitteru!

Dodatna sredstva

  • Java Vodič za intervju: 200+ pitanja i odgovora za intervjue
  • Vodič za proljetni okvirni intervju - više od 200 pitanja i odgovora
  • Priprema za razgovor za posao John Sonmez
  • Intervju za programiranje Java izložio Markham
  • Provaljivanje kodiranja intervjua - 189 pitanja i odgovori
  • Struktura podataka i analiza algoritama za intervjue za posao
  • 130+ Java intervjua u posljednjih 5 godina
PS - Ako su vam potrebni BESPLATNI resursi za učenje Java, možete pogledati ovaj popis besplatnih tečajeva za Java kako biste započeli pripremu.

PSS - Nisam dao odgovor na pitanja intervjua podijeljena na slici "Koliko String objekata je stvoreno u kodu?" možete li pogoditi i objasniti?