Hirdetés

A Java virtuális gép (JVM) egy valódi név csepegtető, amikor Java-ban programozol. A név jelzésével ellentétben a Java virtuális gép más programozási nyelvekkel kapcsolatban is előfordulhat.

Általában nem szükséges tudni, hogy mi a Java virtuális gép, vagy akár mit is csinál, hogy képes legyen a Java programozására. Másrészről, a gép belső működésének megismerése hozzájárul a megértés és az általános betekintés javításához.

Ez a cikk a Java virtuális gép gondolatát, azt mutatja be, hogy mit csinál az Ön számára, valamint a legfontosabb előnyeit és hátrányait. Noha megpróbáltam ezt egyszerűvé tenni, és határozottan fejlettebb irodalom található a témában, a Java és a programozás alapvető megértése várható.

Magas szintű nyelvek

A programozási nyelv szemantikáját úgy tervezték, hogy közel álljon a természetes nyelvhez, miközben tömör marad és könnyen értelmezhető egy gép számára. Mint valószínűleg tudod, a programozási nyelv teljesen különbözik a gépi kódtól, az utasítások sorozatától, amelyet a számítógép egy program létrehozására és futtatására használ. Ezt hívjuk

instagram viewer
magas szintű nyelvek; egy vagy több szintű absztrakció a gépi kódból.

Mielőtt futni tudna, először a magas szintű kódot kell értelmezni. Sok programozási felület áll össze előre (AOT összeállítás) egy adott platformon. Ez hatékonyabbá teszi a programot futási időben, de sokkal kevésbé kompatibilis a különböző platformokkal. A Java ezzel szemben egy közbenső nyelven, az úgynevezett Java bytecode és a Java virtuális gép.

JVM és Java Bytecode

Amikor a Java-projekt épít, lefordítja a forráskódot (a * -ben található).Jáva forrásfájlok) a Java bytecode-hez (leggyakrabban * .class fájlokban). Ez egy lépéssel közelebb hozza a magas szintű kódot a gépi kódhoz, de még nem egészen ott. Ez a bájtkód kompakt utasítások gyűjteménye; a gép könnyebben értelmezhető, de kevésbé olvasható.

Amikor egy Java alkalmazást futtat a számítógépen, mobiltelefonján vagy bármely más Java-kompatibilis platformon, alapvetően átadja ezt a Java bájtkódot a Java virtuális gépnek. A Java virtuális gépben található tolmács általában a teljes bájtkód összeállítását kezdi futási időben, az úgynevezett az időben történő összeállítás. Ez a Java alkalmazás megnyitásakor jellemző, bár gyakran kissé késlelteti, de általában javítja a program teljesítményét a értelmezett összeállítás.

java virtuális gép

Ennek a rendszernek a fő előnye a fokozott kompatibilitás. Mivel az alkalmazások virtuális gépen futnak, nem közvetlenül a hardverén, a fejlesztő programozhatja és egyszer készítik alkalmazásukat, amelyeket azután a Java Virtual megvalósításával minden eszközön végrehajthatunk Gép. Ez az elv szülte a Java szlogennek:Írj egyszer, futtass mindenhol.”

Pro: Kompatibilitás és fokozott biztonság

A Java kompatibilitástól eltekintve a Java virtuális gépnek más előnyei is vannak. Az egyik legfontosabb a Java programok relatív biztonsága a Java virtuális gép eredményeként. Biztonság, ami azt jelenti, hogy egy virtuális gépen futó program sokkal kevésbé valószínű, hogy megzavarja a felhasználó operációs rendszerét, vagy hibákat okozva megrongálja az adatfájlokat.

Con: Különböző JVM implementációk és hibakeresés

A kódkompatibilitással és a Java virtuális géppel szembeni egyik legfontosabb kritika az utóbbi sokféle megvalósításának köszönhető. Látja, hogy a Java virtuális gép nem egy szoftver. Az Oracle, a Java tulajdonosai, bevezetik a Java virtuális gépet, de mások is tehetik meg a sajátjukat, ha az különféle gyakorlati és szerződéses igényeket kielégít.

Ezek a különböző megvalósítások azt jelentik, hogy a kód zökkenőmentesen futhat egy Java virtuális gépen, de összeomolhat és kiéghet egy másikon. Noha a gyakorlatban egyszer meg is írhatja a kódját, és bárhová futtathatja, néha összetettebb kód is még mindig hibakeresést kell végezni a Java virtuális gép különböző megvalósításaiban a helyes működés biztosítása érdekében.

Van tapasztalata a Java virtuális géppel való munka során? Ha igen, van itt valami, amit kihagytam, amit megemlíteni kellene?

Kép jóváírás: Michaelaw, Dcoetzee

Belgiumból író és informatikus hallgató vagyok. Mindig szívességet tehetsz nekem egy jó cikkötlettal, könyvjavaslattal vagy receptötletel.