Tarkista nämä 50 kysymystä, jotta Java-ohjelmointihaastattelusi voidaan murtaa

Luettelo usein kysytyistä Java-kysymyksistä työhaastattelujen ohjelmoinnista.

Hei kaikki! Viime vuosina olen jakanut paljon Java-haastattelukysymyksiä ja keskustelua erikseen. Monet lukijoistani ovat pyytäneet kokoamaan heidät yhteen, jotta he saisivat heidät samaan paikkaan. Tämä viesti on tulosta siitä.

Tämä artikkeli sisältää yli 50 Java-haastattelukysymystä, jotka kattavat kaikki tärkeät aiheet, kuten Core Java -perusteet, Java Collection Framework, Java Multithreading and Concurrency, Java IO, JDBC, JVM Internals, koodausongelmat, olio-ohjelmointi jne.

Kysymykset poimitaan myös erilaisista haastatteluista, eivätkä ne ole missään nimessä kovin vaikeita. Olet ehkä nähnyt heidät jo puhelimessasi tai kasvokkain haastatteluissa.

Kysymykset ovat myös erittäin hyödyllisiä tarkastellessa tärkeitä aiheita, kuten monisäikeisyys ja kokoelmat. Olen myös jakanut hyödyllisiä resursseja jatko-oppimiseen ja parantamiseen, kuten The Complete Java MasterClass, joka korjaa ja täyttää Java-taitojesi aukot.

Joten mitä me odotamme? Tässä on luettelo useimmista Java-kysymyksistä haastatteluissa sekä aloittelijoille että kokeneille Java-kehittäjille.

50+ Java-haastattelukysymystä 2-3 vuoden ajan kokeneille ohjelmoijille

Joten tuhlaamatta enää aikaa, tässä on luettelo joistakin usein kysytyistä Core Java -haastattelukysymyksistä aloittelijoille. Tämä luettelo keskittyy aloittelijoille ja vähemmän kokeneille kehittäjille, kuten jollekin, jolla on 2-3 vuoden kokemus Java-ohjelmasta.

1) Kuinka Java saavuttaa alustan riippumattomuuden? (vastaus)

vihje: tavukoodi ja Java-virtuaalikone

2) Mitä ClassLoaderJava on? (vastaus)

vihje: osa JVM: ää, joka lataa luokkien tavukoodit. Voit kirjoittaa oman.

3) Kirjoita Java-ohjelma tarkistaaksesi onko numero parillinen vai pariton? (vastaus)

vihje: voit käyttää bittioperaattoria, kuten bittiä AND, muista, että jopa numeron lopussa on nolla binäärimuodossa ja parittomalla numerolla 1.

4) Ero Java- sovelluksessa ArrayListja HashSetJava-ohjelmassa? (vastaus)

vihje: kaikki erot Listja Setovat käytettävissä tässä, esim. tilaaminen, kopiot, satunnainen haku jne. Katso Java Fundamentals: Richard Warburtonin kokoelmat saadaksesi lisätietoja ArrayLististä, HashSetistä ja muista tärkeistä Java-kokoelmista.

5) Mikä on kaksoistarkistettu lukitus Singletonissa? (vastaus)

vihje: kaksinkertainen tarkistus, alustetaanko instanssit vai ei, ensin lukitsematta ja toinen lukitsemalla.

6) Kuinka luot langattoman Singletonin Java-ohjelmassa? (vastaus)

vihje: monin tavoin, kuten käyttämällä Enumia tai käyttämällä kaksinkertaisesti tarkistettua lukitusmallia tai käyttämällä sisäkkäistä staattista luokkaa.

7) Milloin haihtuvaa muuttujaa käytetään Javassa? (vastaus)

vihje: kun sinun on kerrottava JVM: lle, että muuttujaa voidaan muokata useilla ketjuilla, ja anna vihje JVM: lle, joka ei välimuistin arvoa.

8) Milloin käyttää transienttimuuttujaa Javassa? (vastaus)

vihje: kun haluat tehdä muuttujasta sarjakelvottoman, joka toteuttaa Serializable-käyttöliittymän. Toisin sanoen, voit käyttää sitä muuttujalle, jonka arvoa et halua tallentaa. Lisätietoja Java- ohimenevistä muuttujista on kohdassa Täydellinen Java MasterClass .

9) Ero Java-ohimenevän ja haihtuvan muuttujan välillä? (vastaus)

vihje: täysin erilainen, toista käytetään sarjoituksen yhteydessä, kun taas toista käytetään samanaikaisesti.

10) Ero Serializable ja Externalizable välillä Java? (vastaus)

vihje: Ulkoistettava antaa sinulle paremman hallinnan sarjallisuusprosessissa.

11) Voimmeko ohittaa yksityisen menetelmän Java-ohjelmassa? (vastaus)

vihje: Ei, koska se ei ole näkyvissä alaluokassa, mikä on ensisijainen vaatimus menetelmän ohittamiseksi Java-ohjelmassa.

12) Ero Java- sovelluksessa Hashtableja HashMapsiinä? (vastaus)

vihje: useita, mutta tärkeintä on Hashtable, joka on synkronoitu, mutta HashMapei. Se on myös perintö ja hidas verrattuna HashMap.

13) Ero Java-tilassa Listja Set Java-ohjelmassa? (vastaus)

vihje: Liston järjestetty ja sallii kopion. Seton järjestämätön eikä salli päällekkäisiä elementtejä.

14) Ero Java- sovelluksessa ArrayListja VectorJava-sovelluksessa (vastaus)

vihje: Monet, mutta tärkeintä on, että ArrayListse ei ole synkronoitua ja nopeaa, kun taas Vectorsynkronoitua ja hidasta. Se on myös perinteinen luokka Hashtable.

15) Ero Java-tilassa Hashtableja ConcurrentHashMapJava-ohjelmassa? (vastaus)

vihje: skaalautuvampi. Katso lisätietoja Java Fundamentals: Richard Warburtonin kokoelmista .

16) Kuinka ConcurrentHashMapskaalautuvuus saavutetaan? (vastaus)

vihje: jakamalla kartta segmentteihin ja lukitsemalla vain kirjoituksen aikana.

17) Mitkä kaksi tapaa ohittaa varten Objectkäytettäväksi Keyvuonna HashMap? (vastaus)

vihje: on yhtä suuri ja hashcode

18) Ero odotuksen ja unen välillä Java-tilassa? (vastaus)

vihje: wait()Menetelmä vapauttaa lukituksen tai näytön, kun taas lepotila ei.

19) Ero Java-tilassa notifyja notifyAllJava-ohjelmassa? (vastaus)

vihje: notifyilmoittaa yhdestä satunnaisesta säikeestä, joka odottaa lukitusta samalla, kun se notifyAllilmoittaa kaikille monitoria odottaville säikeille. Jos olet varma, että vain yksi ketju odottaa, käytä notify, tai muuten notifyAllon parempi. Katso Threading Essentials Mini-Coursekirjoittanut Java-mestari Heinz Kabutz oppia lisää langan kierteen perusteista.

20) Miksi ohitat hashcode-koodin equals()Java-ohjelmassa? (vastaus)

vihje: noudattamaan yhtäläisyyksiä ja hashcode-sopimusta, mikä vaaditaan, jos aiot tallentaa objektisi keräilyluokkiin, esim. HashMaptai ArrayList.

21) Mikä on HashMapvälineiden kuormituskerroin ? (vastaus)

vihje: Kynnys, joka laukaisee koon muuttamisen, HashMapon yleensä 0,75, mikä tarkoittaa HashMapitse koon muuttamista, jos se on 75 prosenttia täynnä.

22) Ero Jaavan välillä ArrayListja LinkedListJava-tilassa? (vastaus)

vihje: sama kuin taulukko ja linkitetty luettelo, yksi sallii satunnaisen haun, kun taas toiset eivät. Lisäys ja poisto on helppoa linkitetyssä luettelossa, mutta haku on helppoa taulukosta. Katso Java Fundamentals: Collections , Richard Warburtonin Pluralsight-kurssi saadaksesi lisätietoja Java-kokoelman olennaisista kokoelmista.

23) Ero Java-tilassa CountDownLatchja CyclicBarrierJava-ohjelmassa? (vastaus)

vihje: Voit käyttää uudelleen, CyclicBarrierkun este on rikki, mutta et voi käyttää sitä uudelleen, CountDownLatchkun määrä on saavuttanut nollan.

24) Milloin käytät Runnablevs ThreadJava: ssa? (vastaus)

vihje: aina

25) Mitä Enum tarkoittaa tyypin turvallisuudessa Java-ohjelmassa? (vastaus)

vihje: Se tarkoittaa, että et voi määrittää erilaista Enum-tyyppistä esiintymää Enum-muuttujalle. esim. jos sinulla on muuttuja kuten DayOfWeekpäivä, et voi antaa sille arvoa DayOfMonthenum.

26) Kuinka Integer-automaattirekisteröinti toimii Javalla? (vastaus)

vihje: Käyttämällä valueOf()Java-menetelmää.

27) Ero Java- sovelluksessa PATHja Classpathsiinä? (vastaus)

vihje: PATHkäyttöjärjestelmä käyttää sitä, kun taas ClasspathJVM käyttää Java-binaarisia, esimerkiksi JAR-tiedostoja tai luokan tiedostoja. Katso Java Fundamentals: Core Platform oppia lisää PATH, Classpathja muut Java-ympäristö muuttuja.

28) Ero menetelmän ylikuormituksen ja ohituksen välillä Java-tilassa? (vastaus)

vihje: Ohitus tapahtuu alaluokassa, kun taas ylikuormitus tapahtuu samassa luokassa. Lisäksi ohitus on ajonaikainen toiminta, kun taas ylikuormitus ratkaistaan ​​kääntämisajankohtana.

29) Kuinka estät luokan luokittelemisen Java-alaluokkaan? (vastaus)

vihje: tee sen rakentajasta yksityinen

30) Kuinka rajoitat luokkasi käyttöä asiakkaasi käytössä? (vastaus)

vihje: tee rakentaja yksityiseksi tai heitä poikkeus rakentajasta

31) Ero Java- sovelluksessa StringBuilderja StringBuffersiinä? (vastaus)

vihje: StringBuilderei ole synkronoitu, kun se StringBufferon synkronoitu.

32) Ero Java-polymorfismin ja perinnöllisyyden välillä? (vastaus)

vihje: Perintö sallii koodin uudelleenkäytön ja rakentaa luokan välisen suhteen, jota dynaamista käyttäytymistä tarjoava polymorfismi vaatii. Katso Java-perusteet: olio-suunnitteluoppia lisää OOP-ominaisuuksista.

33) Voimmeko ohittaa staattisen menetelmän Java-ohjelmassa? (vastaus)

vihje: Ei, koska korvaaminen ratkaisee ajon aikana, kun staattinen menetelmäpuhelu ratkaistaan ​​kääntämisajankohtana.

34) Voimmeko käyttää Java-menetelmää yksityiseen menetelmään? (vastaus)

vihje: kyllä, samassa luokassa, mutta ei luokan ulkopuolella

35) Ero Java-käyttöliittymän ja abstraktin luokan välillä? (vastaus)

vihje: Java 8: sta ero on hämärtynyt. Java-luokka voi silti toteuttaa useita rajapintoja, mutta voi laajentaa vain yhtä luokkaa.

36) Ero Java-DOM: n ja SAX-jäsentimen välillä? (vastaus)

vihje: DOM lataa koko XML-tiedoston muistiin, kun taas SAX ei. Se on tapahtumapohjainen jäsennin ja sitä voidaan käyttää suurten tiedostojen jäsentämiseen, mutta DOM on nopea ja sitä tulisi suositella pienille tiedostoille.

37) Ero heiton ja heiton avainsanan välillä Java-ohjelmassa? (vastaus)

vihje: heitot ilmoittavat, minkä poikkeuksen menetelmä voi heittää virhetilanteessa, mutta heitto-avainsana tosiasiallisesti antaa poikkeuksen. Katso Java-perusteet: Poikkeusten käsittely saadaksesi lisätietoja Java-poikkeusten käsittelystä.

38) Ero Java-vikaturvallisten ja vikatilanteiden iteraattoreiden välillä? (vastaus)

vihje: vikaturvallinen ei heitä ConcurrentModificationExceptionsamalla fail-fastkun he havaitsevat taustalla olevan kokoelman ulkopuolisen muutoksen iteroidessaan sen yli.

39) Ero Java-iteraattorin ja laskurin välillä? (vastaus)

vihje: Iterator antaa sinulle myös mahdollisuuden poistaa elementti iteroinnin aikana, vaikka luettelo ei salli sitä.

40) Mitä IdentityHashMapJava on? (vastaus)

vihje: A Map, joka käyttää ==tasa-arvooperaattoria tasa-arvon tarkistamiseen equals()menetelmän sijaan .

41) Mikä on StringJava-allas? (vastaus)

vihje: StringKirjailijoiden joukko . Muista, että se on siirretty kasaan perm gen -avaruudesta JDK 7: ssä.

42) Voiko Serializableluokka sisältää ei-sarjoitettavan kentän Javalassa? (vastaus)

vihje: Kyllä, mutta sinun on tehtävä siitä joko staattinen tai ohimenevä.

43) Ero tämän ja superin välillä Java-tilassa? (vastaus)

vihje: tämä viittaa nykyiseen esiintymään, kun taas super viittaa yliluokan esiintymään.

44) Ero Java- sovelluksessa Comparatorja Comparablesen välillä ? (vastaus)

vihje: Comparatormäärittelee mukautetun järjestyksen, kun taas Comparableesineiden luonnollisen järjestyksen, esimerkiksi aakkosjärjestys String. Lisätietoja Java- lajittelusta on kohdassa Täydellinen Java MasterClass .

45) Ero Java-tilassa java.util.Dateja java.sql.DateJava-ohjelmassa? (vastaus)

vihje: edellinen sisältää sekä päivämäärän että kellonajan, kun taas myöhempi sisältää vain päivämääräosan.

46) Miksi odotus- ja ilmoitustapa ilmoitetaan ObjectJava-luokassa? (vastaus)

vihje: koska ne edellyttävät lukitusta, joka on vain kohteen käytettävissä.

47) Miksi Java ei tue useita perintöjä? (vastaus)

vihje: Se ei tue huonon kokemuksen vuoksi C ++: lla, mutta Java 8: lla se on jossain mielessä - vain TypeJava: n useita perintöjä ei tueta nyt.

48) Ero Java: n tarkistetun ja valitsemattoman poikkeuksen välillä? (vastaus)

vihje: Jos tämä on valittu, sinun on käsiteltävä poikkeusta salauslohkolla, kun taas valitsematta, se on sinun tehtäväsi; kääntää ei häiritse sinua.

49) Ero Java-virheiden ja poikkeusten välillä? (vastaus)

vihje: Olen kyllästynyt kirjoittamaan tarkista vastaus

50) Ero kilpailutilanteen ja umpikujan välillä Java-ohjelmassa? (vastaus)

vihje: molemmat ovat virheitä, jotka tapahtuvat samanaikaisessa sovelluksessa, toinen tapahtuu ketjujen ajoituksen vuoksi, kun taas toiset huonon koodauksen vuoksi. Katso Javan monisäikeisyys ja rinnakkaislaskenta saadaksesi lisätietoja umpikujasta, kilpailuolosuhteista ja muista monisäikeisistä kysymyksistä.

Päätelmät

Kiitos, teit sen artikkelin loppuun ... Onnea ohjelmointihaastattelussa! Se ei todellakaan tule olemaan helppoa, mutta seuraamalla tätä tiekarttaa ja opasta olet yksi askel lähempänä DevOps-insinööriä.

Jos pidät tästä artikkelista, jaa ystävillesi ja kollegoillesi, älä unohda seurata javinpaulia Twitterissä!

Lisäresurssit

  • Java-haastatteluopas: 200+ haastattelukysymystä ja vastausta
  • Spring Framework -haastatteluopas - yli 200 kysymystä ja vastausta
  • Valmistautuminen työhaastatteluun John Sonmez
  • Java-ohjelmointihaastattelu Markham paljastaa
  • Koodaavan haastattelun murtaminen - 189 kysymystä ja vastausta
  • Tietorakenne ja algoritmien analyysi työhaastatteluille
  • 130+ Java-haastattelukysymystä viimeisen viiden vuoden ajalta
PS - Jos tarvitset ILMAISIA resursseja Java-oppimiseen, voit tutustua tähän luetteloon ilmaisista Java-kursseista aloittaaksesi valmistelut.

PSS - En ole antanut vastausta haastattelukysymyksiin, jotka on jaettu kuvaan ”Kuinka monta merkkijono-objektia koodissa luodaan?” voitko arvata ja selittää?