Next: Többszálú Up: A nyelv alapvető tulajdonságai Previous: Interpretált és dinamikus   Tartalomjegyzék
Robusztus a nyelv, ha megakadályozza vagy futás közben kiszűri a programozási hibákat. Biztonságos a nyelv, ha megakadályozza, hogy rosszindulatú programok kerüljenek a rendszerbe. Mindkét célkitűzés eléréséhez gyakran hasonló módszereket használnak.
A robusztusságot nyelvi szinten a szigorú, statikus típusosság biztosítja. Minden adatnak fordításkor jól definiált típusa van, nincsenek automatikus konverziók, az explicit konverzió csak kompatibilis típusoknál sikerül, egyébként legkésőbb futtatáskor programhibát okoz. A mutatók megszüntetésével rengeteg potenciális hibalehetőség tűnt el a nyelvből, bár ennek nem minden programozó örül. A dinamikus szemétgyűjtés megkímél bennünket a hasznos memória elszivárgásától. Az egyedüli összetett adatszerkezet, a tömb használatakor, a túlcímzést futási időben ellenőrzik. Az osztály-betöltő arra is figyel, hogy a metódusokat megfelelő típusú paraméterekkel hívjuk meg.
A biztonság a robusztussággal kezdődik. A fordító csak „rendesen viselkedő” programokat ad ki magából. Ez elegendő lehet önálló alkalmazásoknál, de az appletek letöltésénél ennél többre van szükség. A „Byte” kód minden utasítása információt tartalmaz az operandusok típusáról, és az osztály-betöltő ellenőrzi, hogy a program megfelel-e a nyelv szabályainak. Ellenőrzi azt is, hogy a metódusok a vermüket konzisztensen használják-e, valamint hogy a kód nem fér-e hozzá számára nem engedélyezett adatkomponensekhez és metódusokhoz.
Az osztály-betöltő a hivatkozott osztályt először mindig a helyi háttértárból próbálja betölteni, csak akkor fordul a hálózaton elérhető kiszolgálóhoz, ha az osztály nincs meg a helyi rendszeren. Így elkerülhető, hogy trójai falóként valamelyik rendszerkönyvtár helyett azonos nevű, távolról betöltött programot futtassunk.
Ha a betöltött appletek átjutottak az osztály-betöltő
konzisztencia-ellenőrzésén, akkor a virtuális gép felügyelete alatt
kezdenek el futni. Ez ellenőrzi, hogy a programok csak engedélyezett tevékenységet
hajtanak végre. Szigorúan szabályozott a helyi állományokhoz való hozzáférés,
tiltott más helyi programok indítása, jelentősen korlátozott a hálózaton
felvehető kapcsolatok címzettje. A biztonsági szabályok erősen korlátozzák
az appletek képességeit. Biztonsági szempontból legfeljebb a helyi rendszerből
betöltött (viszonylag biztonságos), illetve hálózatról letöltött (gyanús)
osztályok között lehet különbséget tenni.
Next: Többszálú Up: A nyelv alapvető tulajdonságai Previous: Interpretált és dinamikus   Tartalomjegyzék
Misóka Zoltán 2000. 10. 05.