![translation](https://cdn.durumis.com/common/trans.png)
Ez egy AI által fordított bejegyzés.
[Nem informatikai szakember, de fejlesztőként akarok túlélni] 14. Gyakran feltett technikai interjúkérdések összefoglalása kezdő fejlesztők számára
- Írás nyelve: Koreai
- •
-
Referencia ország: Minden ország
- •
- Informatika
Válasszon nyelvet
A durumis AI által összefoglalt szöveg
- A kezdő fejlesztők interjúin gyakran feltett technikai kérdéseket foglaltuk össze, amelyek a memóriaterület, adatstruktúrák, adatbázisok, programozás, oldalcserélő algoritmusok, folyamatok és szálak, OSI 7-réteg, TCP és UDP, valamint más témakörök leírását tartalmazzák.
- Minden témakörhöz rövid fogalmi magyarázatot és szemléltető példákat adunk, amelyek segítik a megértést.
- Hasznos információkat tartalmaz a fejlesztők számára, amelyek segíthetnek elsajátítani az alapvető technikai ismereteket, amelyekre szükségük van az interjúra való felkészüléshez.
Nem informatikai szakember, hogyan lehet fejlesztőként túlélni
#14. Gyakori technikai interjúkérdések kezdő fejlesztők számára
[A fő memória területei]
- Kód terület: A program forráskódját tároló terület, ahol a CPU a kódterületen tárolt utasításokat (forráskód, függvények, vezérlési utasítások) olvassa be és dolgozza fel. Például, ha egy C nyelven írt program fut, a kódterületen a program forráskódja lesz tárolva.
- Adatterület: A globális és statikus változókat tároló terület, amely a program indításával együtt lesz kiosztva, és a program befejeződéséig nem pusztul el. Például, ha egy C nyelven írt program fut, az adatterületen a programban deklarált globális vagy statikus változók lesznek tárolva.
- Verem terület: A program által használt ideiglenes memória terület, amely a függvények hívásához kapcsolódó lokális változókat és paramétereket tárolja. A függvények hívásával együtt lesz kiosztva, és a függvény befejeződésekor megsemmisül. Például, ha egy C nyelven írt függvényt hívunk meg, a verem területen kerülnek kiosztásra a függvény használta lokális változók vagy paraméterek.
- Halom terület: A felhasználók által dinamikusan allokált és felszabadított memória terület. Például, ha a C nyelven a malloc() függvényt használjuk a memória dinamikus allokálására, az allokált memória terület a halom területen kerül tárolásra.
[Adatszerkezetek]
- Verem: Utolsó be, első ki (LIFO) típusú adatszerkezet. Például, a számítógépen a 'Vissza' gomb a veremhez hasonló. A korábban látogatott oldalak a verembe kerülnek mentésre, és a 'Vissza' gomb megnyomásával a legutóbb mentett oldal kerül elő.
- Sor: Első be, első ki (FIFO) típusú adatszerkezet. Például, a bankban a várakozási számjegyek kivétele a sorhoz hasonló. A legkorábban érkező ember kapja meg a szolgáltatást, és a legkésőbb érkező ember kapja a legkésőbb a szolgáltatást.
- Fa: Adatok hierarchikus struktúrában történő ábrázolására szolgáló adatszerkezet. Például, a HTML DOM fa a fához hasonló. A HTML oldal struktúrája fával van ábrázolva, a gyökér csomópont (html tag) kezdődik, és az alsóbb csomópontok egymás után kerülnek bemutatásra.
- Halom: A bináris fa struktúrák egyik fajtája, amely maximális halomra és minimális halomra oszlik. Például, egy prioritásos sorban a legmagasabb prioritású adat a halom gyökér csomópontjában van, és az alacsonyabb prioritású adat az alsóbb csomópontokban található, ez a maximális halom egyik példája.
[RDBMS és NoSQL]
- RDBMS: Szigorú sémával rendelkező adatbázis, amely strukturáltan definiálja és kezeli az adatokat. Az adatok szétszórva tárolhatók, és könnyen módosíthatók. Például a MySQL, Oracle, MS-SQL az RDBMS-ek tipikus példái.
- NoSQL: Rugalmas sémával rendelkező adatbázis, amely az adatokat tárolja és kezeli. Nagy mennyiségű adat feldolgozására és tárolására alkalmas, és magas méretezhetőséggel rendelkezik. Például a MongoDB, Cassandra, HBase a NoSQL tipikus példái.
[Eljárási orientált és objektumorientált]
- Eljárási orientált programozás: A programozási technika, ahol a szekvenciális feldolgozás a legfontosabb. A C, Pascal stb. nyelvek eljárási orientált nyelvek.
- Objektumorientált programozás: A programozási módszer, ahol az objektum (Object) fogalmán alapul, és a logikailag összekapcsolt adatokat és eljárásokat dolgozza fel. A Java, C++, Python stb. nyelvek objektumorientált nyelvek. Például, egy autó szimulációs programban az autó objektumként van ábrázolva, és az autó tulajdonságai (szín, gyorsulás stb.) adatokként, az autó által végrehajtott funkciók (vezetés, megállás stb.) módszerekként vannak ábrázolva.
[Felülírás és túlterhelés]
- Felülírás: A szülő osztály által birtokolt metódusok újradefiniálása és használata a gyermek osztályban. Ha a gyermek osztályban a szülő osztály metódusát hívják meg, a szülő osztály metódusa helyett a gyermek osztályban újradefiniált metódus kerül végrehajtásra. Például, a Java toString() metódusa a felülírás egyik példája.
- Túlterhelés: Ugyanazon metódus több definíciója, de eltérő típusú és számú paraméterekkel, hogy különböző típusú hívásokra válaszoljon. A metódusoknak különböző paraméterei vannak, de ugyanaz a nevük, és működnek. Például, a Java print() metódusa a túlterhelés egyik példája.
[Oldalcsere algoritmusok]
- FIFO: A fizikai memóriába betöltött legrégebbi oldalt cseréli ki. A számítógépen az 'Összefoglaló zárlás' a FIFO algoritmushoz hasonló. A legkorábban indított program a legkésőbb jelenik meg, és záródik be.
- LRU: A leghosszabb ideig nem használt oldalt cseréli ki. A ritkán használt alkalmazások közül a legöregebb alkalmazás bezárása az 'Alkalmazások bezárása' alkalmazáshoz hasonló az LRU algoritmushoz.
- LFU: A legkisebb számú hivatkozással rendelkező oldalt cseréli ki. Például, a böngészőben az új lapok közül a legkevésbé használt lapok bezárása a 'Lap bezárása' funkcióhoz hasonló az LFU algoritmushoz.
- MFU: A legtöbb hivatkozással rendelkező oldalt cseréli ki. Az MFU algoritmust ritkán használják.
[Folyamatok és szálak]
- Folyamat: A rendszer által allokált végrehajtható feladat egység, ami a programot jelenti. Ha több folyamat fut egyszerre, akkor mindegyik folyamat külön memóriaterületet és CPU-t kap.
- Szál: A folyamatban futó végrehajtható egység, amely megosztja a folyamat által allokált erőforrásokat. Például a webböngészőben minden egyes fül nem folyamat, hanem szálként fut.
[OSI 7 réteg]
- Alkalmazási réteg: A felhasználó és a hálózat közötti összeköttetés rétege, amely a HTTP, FTP, SMTP stb. protokollokat tartalmazza.
- Bemutatási réteg: A réteg, amely meghatározza az adatok megjelenítési módját, és a JPEG, MPEG, SSL stb. protokollokat tartalmazza.
- Szekció réteg: A réteg, amely kezeli a két kommunikáló rendszer közötti szekciót.
- Szállítási réteg: A réteg, amely az adatok átvitelét kezeli, és a TCP, UDP stb. protokollokat tartalmazza.
- Hálózati réteg: A réteg, amely meghatározza az adatok átviteli útvonalát, és az IP, ICMP stb. protokollokat tartalmazza.
- Adatkapcsolati réteg: A réteg, amely a fizikai címek (MAC címek) alapján továbbítja az adatokat, és az Ethernet, Token Ring stb. protokollokat tartalmazza.
- Fizikai réteg: A réteg, amely a fizikai kapcsolatot és az átviteli közeget kezeli.
[TCP és UDP]
- TCP: Kapcsolatorientált szolgáltatás, amely megbízható módon továbbítja az adatokat. A 3 utas kézfogás és a 4 utas kézfogás segítségével létesíti vagy bontja a kapcsolatot. Például, ha egy weboldalon bejelentkezünk, vagy fájlokat továbbítunk, akkor a TCP protokollt használjuk.
- UDP: Kapcsolat nélküli szolgáltatás, amely nem igényel jelzési eljárásokat az adatok átviteléhez, és az adatok megbízhatósága alacsony, de a feldolgozási sebesség gyors. Például, a videó streamelés vagy az online játékok esetén, ahol a gyors átvitel a legfontosabb, a UDP protokollt használják.