Java programmeerimisintervjuu purustamiseks vaadake üle need 50 küsimust

Tööintervjuude programmeerimise korduma kippuvate Java-küsimuste loetelu.

Tere kõigile! Viimase paari aasta jooksul olen jaganud palju Java Intervjuu küsimusi ja arutelu individuaalselt. Paljud mu lugejad on palunud mul neid kokku viia, et nad saaksid nad ühte kohta. See postitus on selle tulemus.

See artikkel sisaldab rohkem kui 50 Java-intervjuu küsimust, mis hõlmavad kõiki olulisi teemasid, nagu Java põhialused, Java Collection Framework, Java Multithreading and Concurrency, Java IO, JDBC, JVM Internals, kodeerimisprobleemid, objektile orienteeritud programmeerimine jne.

Küsimused on üles võetud ka erinevatest intervjuudest ja need pole sugugi väga keerulised. Võimalik, et olete neid juba oma telefonis või näost näkku intervjuudes näinud.

Küsimused on väga kasulikud ka selliste oluliste teemade ülevaatamiseks nagu mitmikeermeline ja kogumikud. Olen ka jaganud mõningaid kasulikke ressursse edasiseks õppimiseks ja täiendamiseks, näiteks The Complete Java MasterClass, et oma Java-oskustes lünki täita ja täita.

Mida me siis ootame? Siin on nimekiri kõige algsematest Java-küsimustest intervjuudes nii algajatele kui ka kogenud Java-arendajatele.

50+ Java-intervjuu küsimust 2–3 aastat kogenud programmeerijatele

Niisiis, ilma rohkem aega raiskamata, on siin minu loetelu algajatele programmeerijatele mõeldud korduma kippuvatest Java Java intervjuu küsimustest. See loend keskendub algajatele ja vähem kogenud arendajatele, nagu keegi, kellel on 2–3-aastane Java-kogemus.

1) Kuidas saavutab Java platvormi sõltumatuse? (vastus)

vihje: baitkood ja Java virtuaalne masin

2) Mis on ClassLoaderJava? (vastus)

vihje: JVM-i osa, mis laadib klasside jaoks baidekoode. Saate ise kirjutada.

3) Kirjutage Java programm, et kontrollida, kas number on paaris või paaritu? (vastus)

vihje: võite kasutada bitipõhist operaatorit, nagu ka bitipidi AND, pidage meeles, et isegi numbri lõpus on binaarformaadis null ja paaritu arvul on lõpuks 1.

4) Erinevus Java ArrayListja HashSetJava vahel? (vastus)

vihje: siin on kõik erinevused Listja need Seton rakendatavad, nt järjestamine, duplikaadid, juhuslik otsing jne. Vaadake Java põhialused: Richard Warburtoni kogud , et saada lisateavet ArrayListi, HashSeti ja teiste Java oluliste kogude kohta.

5) Mis on Singletoni topeltkontrollitud lukustus? (vastus)

vihje: kaks korda kontrollige, kas eksemplarid on initsialiseeritud või mitte, kõigepealt lukustamata ja teiseks lukustades.

6) Kuidas luua Java-niidikindel Singleton? (vastus)

vihje: mitmel viisil, näiteks Enumi kasutamine või topeltkontrollitud lukustusmustri kasutamine või sisestatud staatilise klassi kasutamine.

7) Millal kasutada lenduvat muutujat Java-s? (vastus)

vihje: kui peate JVM-i juhendama, et muutujat saab muuta mitme lõimega, ja andke JVM-ile vihje, mis selle väärtust vahemällu ei pane.

8) Millal kasutada Java-s ajutist muutujat? (vastus)

vihje: kui soovite muuta muutuja klassis jadamatuks, mis rakendab liidese Serializable. Teisisõnu, saate seda kasutada muutuja jaoks, mille väärtust te ei soovi salvestada. Vaadake jaotist Täielik Java MasterClass, et saada teada Java mööduvate muutujate kohta.

9) Erinevus Java ajutise ja kõikuva muutuja vahel? (vastus)

vihje: täiesti erinev, ühte kasutatakse serialiseerimise kontekstis, teist aga samaaegsena.

10) Erinevus Java-s serialiseeritavate ja välistatavate vahel? (vastus)

vihje: välistatav annab teile suurema kontrolli serialiseerimisprotsessi üle.

11) Kas me võime Java-s privaatset meetodit tühistada? (vastus)

vihje: ei, kuna see pole alamklassis nähtav, mis on peamine nõue meetodi alistamiseks Javas.

12) Erinevus Java Hashtableja HashMapJava vahel? (vastus)

vihje: mitu, kuid kõige olulisem on see Hashtable, mis on sünkroniseeritud, samas kui HashMapseda pole. See on ka pärand ja võrreldes sellega aeglane HashMap.

13) Erinevus Java Listja Set Java vahel? (vastus)

vihje: Liston tellitud ja lubab duplikaati. Seton tellimata ja ei luba duplikaatelemente.

14) Java ArrayListja VectorJava erinevus (vastus)

vihje: Paljud, kuid kõige olulisem on see, et ArrayListsee pole sünkroniseeritud ja kiire, samas kui see Vectoron sünkroonitud ja aeglane. See on ka pärandklassi moodi Hashtable.

15) Erinevus Java Hashtableja ConcurrentHashMapJava vahel? (vastus)

vihje: skaleeritavam. Lisateabe saamiseks vaadake Java Fundamentals: Richard Warburtoni kogud .

16) Kuidas ConcurrentHashMapsaavutada mastaapsus? (vastus)

vihje: jagades kaardi segmentideks ja lukustades ainult kirjutamise ajal.

17) Millised kaks meetodit alistab jaoks Object, mida kasutatakse Keyin HashMap? (vastus)

vihje: võrdub ja räsikood

18) Erinevus ootamise ja une vahel Java-s? (vastus)

vihje: wait()meetod vabastab luku või monitori, une aga mitte.

19) Erinevus Java notifyja notifyAllJava vahel? (vastus)

vihje: notifyteatab, et üks juhuslik niit ootab seda lukku, samal ajal notifyAllteavitades kõiki monitori ootavaid lõime. Kui olete kindel, et ainult üks lõim ootab, siis kasutage notify, muidu notifyAllon parem. Vt Threading Essentialsi minikursuskirjutas Java meister Heinz Kabutz, et saada lisateavet niitimise põhitõdede kohta.

20) Miks alistate räsikoodi koos equals()Java-ga? (vastus)

Vihje: olla vastavuses võrdsete ja teemaviide lepingu, mis on vajalik, kui te plaanite salvestada objekti kogumise klassid, näiteks HashMapvõi ArrayList.

21) Mis on vahendite koormustegur HashMap? (vastus)

vihje: Lävi, mis käivitab suuruse muutmise, HashMapon üldjuhul 0,75, mis tähendab HashMapenda suuruse muutmist , kui see on 75 protsenti täis.

22) Erinevus Java ArrayListja LinkedListJava vahel? (vastus)

vihje: sama mis massiiv ja lingitud loend, üks lubab juhuslikku otsingut, teine ​​aga mitte. Lingitud loendisse lisamine ja kustutamine on lihtne, kuid massiivi otsimine on lihtne. Vaadake Java Fundamentals: Collections , Richard Warburtoni Pluralsighti kursust, et saada lisateavet Java oluliste koguandmete struktuuri kohta.

23) Erinevus Java CountDownLatchja CyclicBarrierJava vahel? (vastus)

vihje: saate uuesti kasutada CyclicBarrierpärast tõkke purunemist, kuid te ei saa seda kasutada CountDownLatchpärast loenduse nulli jõudmist.

24) Millal kasutate Java-d Runnablevs Thread? (vastus)

vihje: alati

25) Mida tähendab Enumi Java-tüübikindlus? (vastus)

vihje: See tähendab, et te ei saa Enumi muutujale määrata erinevat tüüpi Enumi eksemplari. nt kui teil on selline muutuja nagu DayOfWeekpäev, ei saa te selle väärtust loendist omistada DayOfMonth.

26) Kuidas töötab täisarvu Autoboxing Java-s? (vastus)

vihje: valueOf()Java-meetodi abil.

27) Erinevus Java PATHja ClasspathJava vahel? (vastus)

vihje: PATHseda kasutab opsüsteem, samal ajal Classpathkui JVM kasutab seda Java binaarsete, nt JAR-failide või klassi failide leidmiseks. Vt Java põhitõed: tuumikplatvorm rohkem teada PATH, Classpathja muud Java keskkonnamuutuja.

28) Erinevus Java-meetodi ülekoormamise ja alistamise vahel? (vastus)

vihje: alistamine toimub alaklassis, samas kui ülekoormamine toimub samas klassis. Ületamine on ka käitamisaeg, samas kui ülekoormus lahendatakse kompileerimise ajal.

29) Kuidas takistada klassi Java-alamklassi kuulumist? (vastus)

vihje: muudke selle konstruktor lihtsalt privaatseks

30) Kuidas piirate oma klassi kasutamist kliendi poolt? (vastus)

vihje: tehke konstruktor privaatseks või visake konstruktori erand

31) Erinevus Java StringBuilderja StringBufferJava vahel? (vastus)

vihje: StringBuilderpole sünkroonimise ajal StringBuffersünkroonitud.

32) Kas vahe Java polümorfismi ja pärilikkuse vahel? (vastus)

vihje: Pärimine võimaldab koodi taaskasutada ja loob klassi vahelise suhte, mida nõuab dünaamilist käitumist pakkuv polümorfism. Vt Java põhitõed: Objektorienteeritud disainOOP funktsioonide kohta lisateabe saamiseks.

33) Kas Java-s saab staatilist meetodit alistada? (vastus)

vihje: Ei, sest ülekandmine lahendatakse käituse ajal, staatilise meetodi kõne aga kompileerimise ajal.

34) Kas pääseme Java-s privaatsele meetodile juurde? (vastus)

vihje: jah, samas klassis, kuid mitte väljaspool klassi

35) Java-liidese ja abstraktse klassi erinevus? (vastus)

vihje: Java 8-st on erinevus hägune. Java klass suudab siiski rakendada mitut liidest, kuid saab laiendada ainult ühte klassi.

36) DOM-i ja SAX-i parseri erinevus Java-s? (vastus)

vihje: DOM laadib kogu XML-faili mällu, samas kui SAX seda ei tee. See on sündmusepõhine parser ja seda saab kasutada suure faili sõelumiseks, kuid DOM on kiire ja seda tuleks väikeste failide puhul eelistada.

37) Erinevus visete ja visete märksõna vahel Java-s? (vastus)

vihje: visked deklareerivad, millise erandi võib meetod vea korral visata, kuid viske märksõna viskab tegelikult erandi. Vaadake jaotist Java põhitõed: Erandite käitlemine, et saada lisateavet Java erandite käsitlemise kohta.

38) Kas vahe on tõrkekindlate ja ebaõnnestuvate iteraatorite vahel Java-s? (vastus)

vihje: tõrkekindel ei viska ConcurrentModificationExceptionsamal ajal, fail-fastkui nad tuvastavad selle aluseks oleva kollektsiooni välise muutuse, kordades seda.

39) Erinevus iteraatori ja loenduse vahel Java-s? (vastus)

vihje: Iterator annab teile ka võimaluse eemaldada element iteratsiooni ajal, samal ajal kui loendamine seda ei luba.

40) Mis on IdentityHashMapJava? (vastus)

vihje: A Map, mis meetodi ==asemel võrdsuse kontrollimiseks kasutab võrdõiguslikkuse operaatorit equals().

41) Mis on StringJava bassein? (vastus)

vihje: Stringliteraalide kogum . Pidage meeles, et see on JDK 7-s perm gen-ruumist kuhjata.

42) Kas Serializableklass võib sisaldada Java-s seriseerimata välja? (vastus)

vihje: jah, kuid peate selle muutma staatiliseks või mööduvaks.

43) Selle ja super erinevus Java-s? (vastus)

vihje: see viitab praegusele eksemplarile, super aga superklassi eksemplarile.

44) Erinevus Java Comparatorja ComparableJava vahel? (vastus)

vihje: Comparatormääratleb kohandatud järjestuse, samas Comparablekui objektide loomulik järjestus, nt tähestikuline järjestus String. Lisateavet Java sortimise kohta leiate jaotisest Täielik Java MasterClass .

45) Erinevus Java java.util.Dateja java.sql.DateJava vahel? (vastus)

vihje: endine sisaldab nii kuupäeva kui kellaaega, hilisem aga ainult kuupäeva osa.

46) Miks on ObjectJava-klassis deklareeritud ootamise ja teatamise meetod ? (vastus)

vihje: kuna need nõuavad lukku, mis on saadaval ainult objektile.

47) Miks Java ei toeta mitut pärandit? (vastus)

vihje: see ei toeta halva C ++ kasutuskogemuse tõttu, kuid Java 8 puhul on mõnes mõttes küll - Typepraegu ei toeta Java ainult mitut pärandit .

48) Erinevus Java-s kontrollitud ja kontrollimata erandi vahel? (vastus)

vihje: Kui olete märgitud, peate erandit käsitsema püüdmisploki abil, kui see on aga märkimata, sõltub see teie otsusest; kompileerimine ei häiri teid.

49) Erinevus Java vea ja erandi vahel? (vastus)

vihje: ma olen tüdinud kirjutamisest, palun kontrollige vastust

50) Erinevus võistlustingimuste ja ummikseisude vahel Java-s? (vastus)

vihje: mõlemad on vead, mis esinevad samaaegses rakenduses, üks juhtub lõime ajastamise tõttu, teised aga kehva kodeerimise tõttu. Vaadake jaotist Mitmikeere ja paralleelarvutamine Java-s, et saada lisateavet ummikseisust, võistlustingimustest ja muudest mitmikeermelistest probleemidest.

Lõpumärkused

Aitäh, jõudsite artikli lõpuni ... Edu programmeerimisintervjuu puhul! Kindlasti ei saa see olema lihtne, kuid järgides seda teekaarti ja juhendit, olete DevOpsi inseneriks saamise sammu võrra lähemal.

Kui teile see artikkel meeldib, siis jagage palun oma sõprade ja kolleegidega ning ärge unustage Twitteris javinpauli jälgida!

Lisaressursid

  • Java intervjuu juhend: 200+ intervjuu küsimust ja vastus
  • Kevadine raamistikuintervjuu juhend - 200+ küsimust ja vastust
  • Ettevalmistused tööintervjuuks John Sonmez
  • Java programmeerimisintervjuu paljastas Markham
  • Kodeerimisintervjuu lõhenemine - 189 küsimust ja vastust
  • Tööintervjuude andmete struktuur ja algoritmide analüüs
  • 130+ Java intervjuu küsimust viimase 5 aasta jooksul
PS - kui vajate Java õppimiseks mõnda TASUTA ressurssi, saate ettevalmistuse alustamiseks tutvuda selle tasuta Java-kursuste loendiga .

PSS - ma ei ole andnud vastust intervjuu küsimustele, mis on jagatud pildil „Kui palju stringi objekte koodis luuakse?“ oskate arvata ja selgitada?