Oglas

Java navidezni stroj (JVM) je resnična kapalka imena, ko programirate na Javi. V nasprotju s tem, kar ime nakazuje, lahko Java Virtual Machine naletimo tudi na druge programske jezike.

Na splošno ni treba vedeti, kaj je navidezni stroj Java ali celo kaj počne, da bi lahko programirali v Javi. Po drugi strani pa seznanjanje z notranjim delovanjem stroja pomaga povečati vaše razumevanje in splošen vpogled.

Ta članek opisuje idejo o navideznem stroju Java, kaj počne za vas in nekatere najpomembnejše prednosti in slabosti. Čeprav sem si prizadeval, da bi bilo to preprosto, in na to temo zagotovo obstaja naprednejša literatura, je pričakovati osnovno razumevanje Jave in programiranja.

Jeziki na visoki ravni

Semantika programskega jezika je zasnovana tako, da je blizu našemu naravnemu jeziku, hkrati pa ostane strojna in enostavna za razlago stroja. Kot verjetno veste, se programski jezik v celoti razlikuje od strojne kode, nabora navodil, ki jih računalnik uporablja za izdelavo in zagon programa. Temu pravimo jeziki na visoki ravni; eno ali več ravni abstrakcije od strojne kode.

instagram viewer

Preden se lahko zažene, je treba najprej interpretirati kodo na visoki ravni. Veliko programskih vmesnikov se pripravi vnaprej (AOT kompilacija) za določeno platformo. Zaradi tega je program med izvajanjem bolj učinkovit, a precej manj združljiv z različnimi platformami. Java v nasprotju s tem deluje z vmesnim jezikom Java bytecode in Java Virtual Machine.

JVM in Java Bytecode

Ko se izdela vaš Java projekt, prevede izvorno kodo (ki jo vsebuje *.java izvorne datoteke) v bajt kodo Java (najpogosteje vsebuje datoteke * .class). To bo vašo kodo na visoki ravni približalo strojni kodi, vendar še ne tam. Ta bajt koda je zbirka kompaktnih navodil; enostavnejši za razlago stroja, vendar manj berljiv.

Ko v računalniku, mobilnem telefonu ali kateri koli drugi platformi, ki podpira Java, zaženete aplikacijo Java, to bajt kodo Java v bistvu prenesete na Java-in virtualni stroj. Tolmač v navideznem stroju Java običajno začne izvajati celotno bajtno kodo med izvajanjem, pri čemer upošteva načela t.i. ravno pravočasna kompilacija. To povzroča značilno, čeprav pogosto majhno zamudo pri odpiranju Java aplikacije, vendar na splošno poveča delovanje programa v primerjavi z interpretirana kompilacija.

java virtualni stroj

Glavna prednost tega sistema je povečana združljivost. Ker se vaše aplikacije izvajajo v virtualnem računalniku namesto neposredno v strojni opremi, lahko razvijalci programirajo in enkrat izdelati njihovo aplikacijo, ki jo je nato mogoče izvesti na vsaki napravi z izvajanjem Java Virtual Stroj. To načelo je rodilo slogan Java:Enkrat piši, teči povsod.”

Pro: Združljivost in večja varnost

Java Virtual Machine ima poleg združljivosti kode še druge prednosti. Med njimi je najpomembnejša relativna varnost Java programov, ki so posledica navideznega stroja Java. Varnost, kar pomeni, da program, ki se izvaja v navideznem stroju, veliko manj verjetno, da bo motil uporabnikov operacijski sistem ali poškodoval podatkovne datoteke, če pride do napak.

Con: Različne izvedbe in odpravljanje napak JVM

Ena izmed glavnih kritik, izraženih proti združljivosti kode in Java Virtual Machine, je posledica številnih različnih izvedb slednjega. Vidite, navidezni stroj Java ni en del programske opreme. Oracle, lastniki Java, imajo vgrajeno aplikacijo Java Virtual Machine, vendar lahko tudi drugi vložijo svoje, če izpolnjujejo različne praktične in pogodbene zahtevke.

Te različne izvedbe pomenijo, da se koda lahko nemoteno izvaja na enem Java virtualnem stroju, vendar se zruši in zažge na drugi. Čeprav lahko v praksi svojo kodo napišete enkrat in jo zaženete povsod, včasih je bolj zapletena koda še vedno je treba odpraviti napake v različnih izvedbah Java Virtual Machine, da zagotovite pravilno delovanje.

Imate izkušnje z delom z navideznim strojem Java? Če je tako, ali sem tukaj kaj pogrešala, kar bi bilo treba omeniti?

Kreditna slika: Michaelaw, Dcoetzee

Sem pisatelj in študent računalniških znanosti iz Belgije. Vedno mi lahko naredite uslugo z dobro idejo o članku, priporočilom o knjigi ali idejo o receptu.