CodeGym/Java blog/Véletlen/Az interjúkon gyakran feltett trükkös Java-kérdések
John Squirrels
Szint
San Francisco

Az interjúkon gyakran feltett trükkös Java-kérdések

Megjelent a csoportban
Ha valaha készült egy interjúra Java programozói pozícióra, vagy letette a képesítési vizsgát (nem feltétlenül programozásról), akkor valószínűleg már észrevette, hogy az ott feltett kérdések nagyon konkrétak. Sokan arra késztetik az embert, hogy gondolkodjon a nyelv kialakításán. Némelyiket úgy tervezték, hogy megismerjék tudásának mélységét. Vannak olyan kérdések, amelyek inkább rejtvénynek tűnnek, mint bármi más, míg mások a nyelv olyan árnyalataihoz kapcsolódnak, amelyeket gyakorlás nélkül nagyon nehéz felfogni. Ebben a cikkben Sarans Sing fejlesztő néhány ilyen kérdést mutat be a Java-val kapcsolatban. Természetesen válaszokkal. Az interjúkon gyakran feltett trükkös Java-kérdések - 11. Mi történik, ha egy try/catch blokkba teszek egy return utasítást vagy System.exit()-et? Ez egy nagyon népszerű és finom Java-kérdés. A trükk az, hogy sok programozó azt hiszi, hogy a finallyblokk mindig végrehajtásra kerül. Ha egy returnállítást blokkba helyezünk try/catch, vagy System.exit()egy blokkon belülről hívunk try/catch, a kérdés megkérdőjelezi ezt a meggyőződést. A válasz erre a trükkös kérdésre a következő: a finallyblokk végrehajtásra kerül, amikor egy returnutasítást blokkba helyezünk try/catch, de nem hajtódik végre, ha System.exit()egy blokkon belülről hívják try/catch. 2. A Java támogatja a többszörös öröklődést? Ez egy nagyon trükkös kérdés. Az interjúztatók gyakran kérdezik: "Ha a C ++ támogatja a közvetlen többszörös öröklődést, akkor miért nem a Java?" A válaszegy kicsit bonyolultabb, mint amilyennek látszik, mivel a Java támogatja a többféle típusú öröklődést. Végül is egy Java interfész más interfészeket is kiterjeszthet. Ennek ellenére a Java nem támogatja a megvalósítások többszörös öröklését. 3. Ha egy szülő osztály metódusa NullPointerExceptions-t dob, felülbírálható-e olyan metódussal, amely RuntimeExceptions-t dob? Ez egy másik trükkös kérdés a túlterheléssel és felülírással kapcsolatban. Válasz: Egy felülírt metódus nyugodtan dobhatja NullPointerExceptiona szülőosztályt — RuntimeException, de nem teheti meg ugyanezt egy ellenőrzött kivételtípussal, mint például a Exception. 4. Hogyan garantálja, hogy a szálak holtpont nélkül Nhozzáférhetnek az erőforrásokhoz?N Ha a többszálú kód írása nem az erősséged, akkor tényleg megbotlik ez a kérdés. Még egy tapasztalt programozó számára is nehéz lehet, aki még nem találkozott holtpontokkal és versenykörülményekkel. Az egész trükk a sorrendben van: megelőzheti a holtpontokat, ha az erőforrásokat a megszerzésükkel fordított sorrendben szabadítja fel. 5. Mi a különbség a StringBufferés a StringBuilderJava osztályok között? Ez egy klasszikus Java nyelvi kérdés, amelyet egyes fejlesztők trükkösnek, mások pedig nagyon egyszerűnek találnak. Az StringBuilderosztály a JDK 1.5-ben jelent meg. Az egyetlen különbség ezen osztályok között az, hogy StringBuffera metódusok, mint például length()a , capacity(), és append(), szinkronizáltak, míg a megfelelő metódusokStringBuilderők nem. Ez az alapvető különbség azt jelenti, hogy a karakterlánc-összefűzés gyorsabb -val, StringBuildermint -val StringBuffer. Valójában a használata StringBuffernem ajánlott, mivel a karakterlánc-összefűzés az esetek 99%-ában ugyanazon a szálon történik. 6. Mi az eredménye az 1.0/0.0 kifejezés kiértékelésének? Kivételt vagy fordítási hibát fog produkálni? Ez egy másik trükkös kérdés az osztályról . A Java fejlesztők tisztában vannak a primitív kettős adattípus és egy osztály létezésével , de a lebegőpontos műveletek végrehajtásakor nem fordítanak kellő figyelmet a , , , és a kapcsolódó számtani számításokat szabályozó szabályokra. A válasz erre a kérdésre egyszerű: anAz interjúkon gyakran feltett trükkös Java-kérdések - 2DoubleDoubleDouble.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYNaN-0.0ArithmeticExceptionnem dobják el; a kifejezés kiértékelődik Double.POSITIVE_INFINITY. 7. Mi történik, ha olyan kulcsot próbál beszúrni, HashMapamely már tartalmazza azt a kulcsot? Ez a trükkös kérdés egy másik gyakran feltett kérdés része: hogyan működik HashMapa Java nyelven? HashMapa Javával kapcsolatos zavaros és trükkös kérdések népszerű forrása. Íme a válasz: ha megpróbálsz újra beszúrni egy kulcsot egy HashMap, akkor a régi kulcs lecserélődik, mivel az HashMaposztály nem engedélyezi a duplikált kulcsokat. És ugyanaz a kulcs ugyanazt a hash kódot kapja, ami azt jelenti, hogy a hash vödörben ugyanazon a helyen végzi. Quora anyagok alapján
Hozzászólások
  • Népszerű
  • Új
  • Régi
Hozzászólás írásához be kell jelentkeznie
Ennek az oldalnak még nincsenek megjegyzései