Gyakran feltett kérdésre interjúk gyűjteménye osztály java (1. rész)

Gyakran feltett kérdésre interjúk gyűjteménye osztályok Java (1. rész).

Kétségtelen, hogy a gyűjtemény Java rendkívül fontos terület, és a kérdések a gyűjtemények fogják kérni interjúk mind a kezdő és tapasztalt programozók. A téma olyan hatalmas, hogy gyakorlatilag lehetetlen, hogy ellepje teljesen. Mégis alapján a korábbi interjúk, megpróbálom felsorolni, amennyire csak lehet egy jó kérdés, amelyre fel kell készülnünk.






Kérdés lesz bonyolult és egyszerű, hogy ha a kérdés úgy tűnik, túl primitív - ne felejtsük el, hogy ez tökéletes kevésbé tapasztalt programozók.

Kérdések ebben a cikkben:
Általános kérdések
Továbbá, a keret tartalmazza a Map interfész. amely nem az örököse a Collection interfész. Az ok, amiért ő nem öröklik a gyűjtemény. megbeszéljük a negyedik kérdést.
  • Miért nem öröklik a gyűjtemény Cloneable és Serializable interfészek?
    Nos, a válasz egyszerű: - „mert ez nem szükséges.” Funkcionalitás interfészt biztosít Cloneable és Serializable egyszerűen nem szükséges a gyűjtemény.

    A másik ok - nem kell mindig Cloneable alosztály, mert minden egyes klónozási művelet fogyaszt sok memóriát, és tapasztalatlan programozók tölthetnek maguknak anélkül, hogy észrevette a következményeket.

    És az utolsó ok - klónozás és sorszámozás nagyon szűken specifikus műveleteket, és rájön, amelyre szükségük van csak akkor, ha szükség van rá. Sok gyűjtemény osztályok végre ezeket a kapcsolódási pontokat, de nem szükségképpen zálogba őket minden gyűjtemény általában. Ha kell klónozni és sorszámozás - csak használja az osztályokat, hol van, ha nem - a más osztályokba.
  • Miért Map interfész nem örökli a Collection felület?
    A helyes válasz erre a kérdésre - „mert nem kompatibilisek egymással.” A leírt módszer Collection interfész ADD (Object o). Szótár nem tartalmazhat ez a módszer, mert a munka a kulcs / érték párokat. Továbbá, a szótárak nincs ötlete Keyset, valueSet, amelyek nem a gyűjteményekben.

    Ezen különbségek miatt, Térkép felület nem örökölheti Collection interfész. és ez jelenti a külön ága a hierarchiában.

    Kérdések a listák
  • Miért használunk listák? Mik a fő osztályok végre a lista felületet?
    List Java egy rendezett gyűjteménye terméket. Mindegyik elemnek van egy indexe, kezdve nulla. Minden indexek egyediek. Amellett, hogy a leírt módszerek a felület Collection. A listák saját módszereit, elsősorban dolgozni az elemek a gyűjtemény az index. Lehet osztani ezeket a módszereket 3 csoportra - keresi a tétel, kap egy különleges elem, a gyűjtemény és az al-mintavételre. Mindezeket a műveleteket lehet végrehajtani az index az elem.

    Alapvető osztályok az interfészt megvalósító List Stack, vektor, ArrayList és láncolt lista. További információt velük, olvassa el a dokumentációt.
  • Hogyan lehet átalakítani a string array egy ArrayList?
    Ez a kérdés egy kicsit mélyebb, mint a programozás, ahogy a kezdők. Ennek célja -, hogy ellenőrizze a jelölt tudását a közüzemi órák keretén Collection. Vegyünk két ilyen osztályok, a legkeresettebb interjúk - gyűjtemények és mátrixok. A gyűjtemények osztály biztosítja a statikus módszerek műveletek gyűjtemények. Ennek megfelelően tömbök olyan statikus módszereket tömb műveletek.
    Azt is szeretném megjegyezni, hogy ez a módszer képes kezelni nemcsak a húr, akkor hozzon létre egy listát a tételek bármilyen típusú, ami egy tömb.
  • Hogyan lehet rendezni a listát fordított sorrendben?
    Mint az előző, ez a kérdés teszteli tudását a közüzemi órák Gyűjtemény
    Kérdések a készletek
  • Miért használ sok? Mik a fő osztályok végre a Set felület?
    Ő modellek matematikai sor halmazelmélet. Állítsa be a felület hasonlít a listára. de van néhány különbség. Először - ez nem rendezett gyűjteményéből. Ezért, hozzáadása / törlése elemek nem igényel válogatás. A fő jellemzője a készletek - egyediségét elemek, vagyis egy és ugyanaz az elem nem található meg a set kétszer.

    Nagyon fontos, hogy a működés közben egyenlő () és kivonat, (). lehetővé teszik, hogy hasonlítsa össze a különböző osztályok. Két azonos csak akkor, ha ugyanazokat az elemeket tartalmazzák.

    Ebből következik a fentiekből, a készülék nem támogatja műveleteket az index alapján az elem egy listában. A halmazok csak azok a módszerek, amelyek leírását az a felület Collection.







    A fő osztályok az interfészt megvalósító Set. vannak EnumSet, Hash-halmaz, LinkedHashSet és TreeSet. Ha szeretne többet megtudni - olvasható a vonatkozó részeit Java dokumentáció.
  • Elemként vannak tárolva Hash-halmaz?
    Mint már tudjuk, a HashMap üzletek kulcs / érték párokat, és a gombok egyedinek kell lennie. Hash-halmaz használja HashMap ezt a funkciót, hogy biztosítsa az egyediségét elemeit. A Hash-halmaz osztályban. Szótár leírása a következő:

    Tehát, ha az elemet menteni a beállított, hogy hozza ezt az elemet, amely kulcsfontosságú a szótárban, és az értéke az objektum a jelenlegi, az alábbiak szerint:

    Azt javasoljuk, hogy olvassa el ezt a cikket. ez segít, hogy könnyen válaszolni minden kérdésre kapcsolatos HashMap.
  • Tud-e a null elemet adhatunk a TreeSet vagy Hash-halmaz?
    Amint látható, az előző választ, az eljárás add () nincs ellenőrzés null. Továbbá, HashMap lehetővé teszi egy kulcs érvénytelen. következésképpen az egyszeri null elemet adhatunk Hash-halmaz.

    TreeSet dolgozik ugyanazon az elven, mint a Hash-halmaz. de használ NavigableMap tároló elemek

    NavigableMap egy osztály, amely örökli SortedMap. SortedMap, és nem teszi lehetővé a kulcs null. Következésképpen Treemap nem támogatja tárolására tételek, mint a null. Ha megpróbálja felvenni a null a TreeSet. kap egy kivétel NullPointerException.

    Kérdések a szótárak
    WeakHashMap egy megvalósítása a Map interfész. amely gyenge kapcsolatok az elemeknek. Azaz, ha a külső WeakHashMap nem volt egyetlen hivatkozás a eleme, ez az elem eltávolítható a szemétgyűjtő. Ez az osztály használatára tervezték tárgyakat, amelyek egyenlő () metódus ellenőrzi a személyazonosságát az objektumokat az == operátor. Miután az elem eltávolításra kerül a szemétgyűjtő, azt nem lehet visszaállítani, és nagy meglepetésére a programozó, hogy megtalálja azt a szótárban nem működnek.
  • Magyarázd el, mit ConcurrentHashMap? Hogyan működik ez?
    Venni a hivatalos dokumentumok:
    Végrehajtás szótár teljes mértékben támogatja a multi-threading a hozzáadni / törölni / keresés elemekkel. Ez az osztály meg kell egyeznie előírások, mint a hash tábla, és a hash tábla tartalmaz módszerek megfelelő módszereket. Annak ellenére azonban, minden művelet szálbiztosságát, a minta elemeinek a művelet nem zár az asztalra, és nem arra, hogy tiltsanak be minden hozzáférést az asztalra. Ez az osztály kompatibilis hash valamennyi kérdésben, kivéve többszálú szinkronizálást.
  • Hogyan HashMap?
    A legfontosabb kérdés, amely valószínűleg kérni az interjú során bármilyen szinten programozó. Meg kell jól ismerik a témát, és nem csak azért, mert a legtöbb feltett kérdésre, de azért is, mert a megértés HashMap készülék lehetővé teszi, hogy könnyen megértsék a funkciók a más gyűjteményekben.

    A válasz erre a kérdésre igen kiterjedt, és ez teljesen lehetséges, hogy olvassa el ezt a cikket -, hogy a HashMap. És abban a pillanatban, csak ne feledjük, hogy a HashMap működik tördeljük. Szótár definíció szerint egy olyan objektum, amely megköti a kulcsokat és értékeket. A tárolási ilyen struktúrák, hogy egy belső osztály bejegyzést.

    Változók és a legfontosabb érték tárolására használt kulcsot és értéket. És a tárgyak a tömbben Entry

    Az index a kívánt elem a tömbben úgy számítjuk ki, a hash-kulcs kód. További információ elérhető a linken keresztül elején választ.
  • Hogyan hozzunk létre egy jó kulcs a szótárban?
    A következő egy jó kérdés, ami általában beállítva kiadása után a működését az HashMap. Ezért, egy fő korlátja - a legfontosabb az, hogy olyan legyen, hogy akkor már lehet beszerezni a szótárban jelentését. Ellenkező esetben csak arra használja nincs értelme. Ha érti, hogy a HashMap, tudja, hogy munkája nagymértékben függ kivonat, () és egyenlő () objektum kulcsokat.

    Mint látható a fenti, a legfontosabb az, hogy egy jó, és ugyanaz a kivonat, újra és újra, nem számít, hogy hányszor kért. Továbbá ugyanaz a kulcs hívás esetén egyenlő () vissza kell igaz. és a különböző - hamis.

    Amiből az következik, hogy a legjobb jelölt a szerepe kulcsfontosságú osztályok megváltoztathatatlan.

    Treemap egy különleges fajta HashMap. A különbség az, hogy a kulcsok tárolása egy Treemap rendezett. Alapértelmezésben a „természetes válogatás”. Felülbírálása válogató ellátható egy példányt összehasonlító osztályban. összehasonlítani és módszer, amely felhasználható a sorrendet.

    Felhívjuk figyelmét, hogy minden kulcsot adunk a szótárban végre kell hajtania a Összehasonlítható interfész (szükséges válogatás). Sőt, az összes kulcsot kell egymást kompatibilis: k1.compareTo (k2) ne okozzon ClassCastException bármely K1 és K2 tárolja a szótárban. Ha a felhasználó megpróbálja, hogy egy kulcsot a szótárban, amely sérti ezt a feltételt (például egy string kulcs a szótárban, ahol minden a kulcsok az Integer), tegye módszer (Object kulcs, Object érték) hívjanak ClassCastException.

    A méret a lista numList átalakítás után változatlan marad. mert amint az B.Ekkelya „mögöttes ábrázolás egy tömb, amely nem teszi lehetővé az átméretezés. Calling hozzá () vagy törölni () az a lista megpróbálja módosítani a méret a tömb, és ez vezet a futásidejű hiba”. Más szóval a felsorolás csak átalakító forrás tömbben. Körülbelül JavaDoc Arrays.asList (): Visszaadja a fix méretű lista mögött a megadott tömb.
    De egy ilyen művelet:

    Már vissza a teljes gyűjtemény, amely mérete változtatható, hiszen már dolgozunk egy büntetlen előéletű.
    Tájékoztatása Eckel, hatékonyabb felhasználása eljárásokban Collections.addAll () - ez a módszer sokkal gyorsabb:

    Reader 12502/84 téma

    élő most

    • Vita a feladatok TÉMA: 2408
      Előfizetők: 12441 "class =" js-infobox „> 192,22
    • Fordítása Topeka: 84
      Előfizetők: 12502 "class =" js-infobox „> 34.02
    • News of Topeka: 199
      Előfizetők: 12330 "class =" js-infobox „> 31.86
    • IntelliJ Idea Topeka: 23
      Előfizetők: 12485 "class =" js-infobox „> 21.62
    • Vita téma előadások: 41
      Előfizetők: 12478 "class =" js-infobox „> 20,36
    • A tervezési minták Topeka: 2
      Az előfizetők 26 "class =" js-infobox „> 11.48
    • Govnokod Topeka: 22
      Az előfizetők 70 "class =" js-infobox „> 5,66
    • Cikkek TÉMA: 75
      Előfizetők: 12483 "class =" js-infobox „> 5,66
    • Vizsgálati elemei Topeka 6
      Az előfizetők 13 "class =" js-infobox „> 4,08
    • Arbor Topeka: 110
      Előfizetők: 125 "class =" js-infobox „> 3,41



    Kapcsolódó cikkek