투잡뛰는 개발 노동자

[Nem informatikus, mégis fejlesztő? ] 14. Gyakran ismételt műszaki interjú kérdések kezdő fejlesztőknek

  • Írás nyelve: Koreai
  • Országkód: Minden országcountry-flag
  • Informatika

Létrehozva: 2024-04-03

Létrehozva: 2024-04-03 20:38

Nem informatikusként, hogyan lehet fejlesztőként túlélni


#14. Újonc fejlesztők gyakran ismételt műszaki interjú kérdései


[A főmemória területei]

  • Kódtartomány: A program forráskódjának tárolási területe, a CPU a kódtartományban tárolt utasításokat (forrás, függvény, vezérlési utasítások) veszi át és dolgozza fel. Például, ha egy C nyelven írt program fut, a kódtartományban tárolódik a program forráskódja.
  • Adattartomány: A globális és a statikus változók tárolási területe, a program indításával egyidejűleg foglalódik, és a program befejezéséig nem szűnik meg. Például, ha egy C nyelven írt program fut, az adattartományban tárolódnak a programban deklarált globális és statikus változók.
  • Veremtartomány: A program által használt ideiglenes memóriaterület, a függvényhívásokhoz kapcsolódó helyi változókat és paramétereket tárolja. A függvényhíváskor foglalódik, és a függvény befejezésekor felszabadul. Például, ha egy C nyelven írt függvényt hívunk meg, a függvényben használt helyi változók és paraméterek a veremtartományba kerülnek.
  • Halomtartomány: A felhasználó által dinamikusan lefoglalt és felszabadított memóriaterület. Például, ha a C nyelven a malloc() függvényt használjuk a memória dinamikus lefoglalására, a lefoglalt memóriaterület a halomtartományban tárolódik.

[Adatszerkezetek]

  • Verem (Stack): LIFO (Last-In, First-Out) elven működő adatszerkezet. Például a számítógépen a „Vissza” gomb működése hasonlít a veremhez. Az előzőleg meglátogatott oldalak a verembe kerülnek, és a „Vissza” gomb megnyomásával a legutóbb elmentett oldal jelenik meg.
  • Sor (Queue): FIFO (First-In, First-Out) elven működő adatszerkezet. Például egy bankban a várakozási sorban a sorszám alapján történő kiszolgálás hasonlít a sorhoz. A legkorábban érkező személyt szolgálják ki először, és a legkésőbb érkezőt utoljára.
  • Fa (Tree): Az adatok hierarchikus szerkezetben történő ábrázolására szolgáló adatszerkezet. Például az HTML DOM fája hasonlít a fához. Az HTML oldal szerkezete fa formában van ábrázolva, és a gyökér csomópontból (html tag) indulva a leszármazott csomópontok sorrendben jelennek meg.
  • Halom (Heap): A bináris fa szerkezetek egyike, 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 található, és a következő legmagasabb prioritású adat a leszármazott csomópontokban található, ez a maximális halom példája.

[RDBMS és NoSQL]

  • RDBMS: Szigorú sémával strukturáltan definiált és kezelt adatbázis. Az adatokat elosztottan lehet tárolni, és könnyen módosítható. Például a MySQL, az Oracle és az MS-SQL az RDBMS tipikus példái.
  • NoSQL: Rugalmas sémával tárolt és kezelt adatbázis. Nagy mennyiségű adat feldolgozására és tárolására alkalmas, és jó a méretezhetősége. Például a MongoDB, a Cassandra és a HBase a NoSQL tipikus példái.

[Eljárásorientált és objektumorientált]

  • Eljárásorientált programozás: A sorrendes feldolgozás a legfontosabb programozási technika. A C és a Pascal nyelv eljárásorientált nyelv.
  • Objektumorientált programozás: Az objektum (Object) fogalmán alapul, amelyben az adatok és az eljárások logikailag össze vannak kapcsolva. A Java, a C++ és a Python nyelv objektumorientált nyelv. Például egy autó szimulációs programban az autót objektumként ábrázoljuk, az autó tulajdonságait (szín, gyorsulás stb.) adatokként, az autó által végrehajtott funkciókat (menet, megállás stb.) pedig metódusokként fejezzük ki.

[Felülírás (Overriding) és túlfeltöltés (Overloading)]

  • Felülírás (Overriding): A szülőosztályban lévő metódus újrafogalmazása a leszármazott osztályban. Ha a leszármazott osztályban meghívjuk a szülőosztály metódusát, a szülőosztály metódusa helyett a leszármazott osztályban újrafogalmazott metódus kerül végrehajtásra. Például a Java toString() metódusa a felülírás példája.
  • Túlfeltöltés (Overloading): Ugyanazon névvel rendelkező metódusok definiálása, de eltérő paraméter típusokkal és számmal, hogy a különböző típusú hívásoknak válaszoljon. A paraméterek eltérnek, de a metódusok neve megegyezik. Például a Java print() metódusa a túlfeltöltés példája.

[Oldalcsere algoritmusok]

  • FIFO: A fizikai memóriában a leghosszabb ideje betöltött oldalt cseréli ki. A számítógépen a „Feladat sávban bezárás” is hasonló a FIFO algoritmushoz. A legkorábban elindított program a legkésőbb jelenik meg bezárásra várva.
  • LRU: A leghosszabb ideje nem használt oldalt cseréli ki. A ritkán használt alkalmazások közül a régi alkalmazások bezárása a „Alkalmazás bezáró alkalmazás” is hasonló az LRU algoritmushoz.
  • LFU: A legalacsonyabb hivatkozási számmal rendelkező oldalt cseréli ki. Például a böngészőben az újonnan megnyitott lapok közül a legkevésbé használt lap bezárása a „Lap bezárás” funkció is hasonló az LFU algoritmushoz.
  • MFU: A legmagasabb hivatkozási számmal rendelkező oldalt cseréli ki. Az MFU algoritmus nem igazán használatos.

[Folyamat és szál]

  • Folyamat: Az operációs rendszer által kiosztott végrehajtási egység, ami egy programot jelent. Ha több folyamat fut egyidejűleg, akkor mindegyik folyamat független memóriaterületet és CPU-t kap.
  • Szál: Egy folyamatban futó végrehajtási egység, amely megosztja a folyamat által kapott erőforrásokat. Például egy webböngészőben az egyes lapok nem folyamatok, hanem szálak.

[OSI 7 réteg]

  • Alkalmazási réteg: A felhasználót és a hálózatot összekötő réteg, ide tartoznak az HTTP, FTP, SMTP protokollok.
  • Bemutatási réteg: Az adatok megjelenítési módját definiáló réteg, ide tartoznak a JPEG, MPEG, SSL protokollok.
  • Sesh réteg: A két kommunikáló rendszer közötti munkamenet kezeléséért felelős réteg.
  • Szállítási réteg: Az adatátvitelért felelős réteg, ide tartoznak a TCP és UDP protokollok.
  • Hálózati réteg: Az adatátvitelhez szükséges útvonal beállításáért felelős réteg, ide tartoznak az IP és ICMP protokollok.
  • Adatkapcsolati réteg: A fizikai címek (MAC cím) alapján végzi az adatátvitelt, ide tartoznak az Ethernet és a Token Ring protokollok.
  • Fizikai réteg: A fizikai kapcsolatért és az átviteli közegért felelős réteg.

[TCP és UDP]

  • TCP: Kapcsolat-orientált szolgáltatás, megbízható adatátviteli módot biztosít. 3-utas kézfogás és 4-utas kézfogás módszerrel hozza létre vagy bontja a kapcsolatot. Például, amikor egy weboldalon bejelentkezünk vagy fájlt továbbítunk, a TCP módszert használjuk.
  • UDP: Kapcsolat nélküli szolgáltatás, nincs szükség jelzéscsere folyamatokra az adatátvitelhez, az adatok megbízhatósága alacsony, de a feldolgozási sebessége gyors. Például a videostreaming vagy az online játékok esetében, ahol a gyors átvitel fontos, az UDP módszert használjuk.

Hozzászólások0