Reklaam
Java virtuaalmasin (JVM) on pärisnime tilk, kui programmeerite Java-keeles. Vastupidiselt nimele võib Java virtuaalmasinat kohata ka teiste programmeerimiskeeltega.
Üldiselt ei ole Java programmeerimiseks vajalik teada, mis on Java virtuaalmasin või isegi mida see teeb. Teisest küljest aitab masina sisemise tööga tutvumine parandada teie mõistmist ja üldist mõistmist.
See artikkel annab ülevaate Java virtuaalmasina ideest, sellest, mida see teie heaks teeb, ja kõige olulisematest plussidest ja miinustest. Ehkki olen püüdnud seda lihtsana hoida ja sellel teemal on kindlasti põhjalikumat kirjandust, on oodata Java ja programmeerimise algelist mõistmist.
Kõrgetasemelised keeled
Programmeerimiskeele semantika on kujundatud nii, et see oleks lähedane meie loomuliku keelega, püsides samal ajal sisutihe ja masina jaoks hõlpsasti tõlgendatav. Nagu arvatavasti teate, erineb programmeerimiskeel täielikult masinkoodist - juhistest, mida arvuti kasutab programmi konstrueerimiseks ja käitamiseks. Seda me kutsume kõrgetasemelised keeled; masinkoodist ühe või mitme taseme abstraktsioon.
Enne selle käivitamist tuleb kõigepealt tõlgendada kõrgetasemelist koodi. Paljud programmeerimisliidesed kompileeritakse eelnevalt (AOT-i koostamine) konkreetse platvormi jaoks. See muudab programmi käitustööl tõhusamaks, kuid ühildub palju vähem erinevate platvormidega. Seevastu Java töötab vahekeelega, mida nimetatakse Java baitkood ja Java virtuaalmasin.
JVM ja Java Bytecode
Kui teie Java projekt ehitatakse, tõlgib see lähtekoodi (sisaldub *.java lähtefailid) Java baitkoodile (sisaldub enamasti * .class-failides). See viib teie kõrgetasemelise koodi sammu võrra masinkoodile lähemale, kuid mitte veel päris sinna. See bytecode on kompaktsete juhendite kogum; masinal lihtsamini tõlgendatav, kuid vähem loetav.
Kui käivitate oma arvutis, mobiiltelefonis või mõnel muul Java-toega platvormil Java-rakenduse, edastate selle Java baidikoodi Java virtuaalmasinasse sisuliselt. Java virtuaalmasinas asuv tõlk alustab tavaliselt kogu baidikoodi kompileerimist tööajas, järgides nn just-in-time koostamine. See põhjustab Java-rakenduse avamisel tüüpilist, ehkki sageli väikest viivitust, kuid parandab üldiselt programmi jõudlust võrreldes programmiga tõlgendatud kogumik.
Selle süsteemi peamine eelis on suurenenud ühilduvus. Kuna teie rakendused töötavad otse riistvara asemel virtuaalses masinas, saab arendaja programmeerida ja nende rakenduse üks kord üles ehitada, mida saab seejärel Java Virtuali rakendusega käivitada kõigis seadmetes Masin. See põhimõte on sünnitanud Java loosungi: “Kirjutage üks kord, jookse igal pool.”
Pro: ühilduvus ja suurem turvalisus
Lisaks koodide ühilduvusele on Java virtuaalmasinal ka muid eeliseid. Üks olulisemaid neist on Java-programmide suhteline turvalisus Java-virtuaalse masina tagajärjel. Turvalisus, mis tähendab, et virtuaalmasinas töötav programm häirib tõrke esinemisel tõenäoliselt kasutaja opsüsteemi või rikub andmefaile.
Con: erinevad JVM-i rakendused ja silumine
Koodide ühilduvuse ja Java virtuaalse masina vastu on välja toodud üks peamisi kriitikaid selle paljude erinevate rakenduste tõttu. Näete, et Java virtuaalmasin pole üks tarkvara. Java omanikud Oracle saavad Java virtuaalmasina juurutada, kuid teised inimesed saavad need teha, kui see rahuldab mitmesuguseid praktilisi ja lepingulisi nõudeid.
Need erinevad rakendused tähendavad, et teie kood võib ühel Java virtuaalmasinal sujuvalt töötada, kuid teises krahhida ja põleda. Kuigi praktikas saate oma koodi kirjutada üks kord ja käivitada igal pool, on mõnikord keerukam kood korrektse töö tagamiseks tuleb ikka veel siluda erinevates Java virtuaalmasina rakendustes.
Kas teil on Java virtuaalmasinaga töötamise kogemusi? Kui jah, siis kas siin on midagi, mida ma vahele jäin, mida tuleks mainida?
Kujutise krediit: Michaelaw, Dcoetzee
Olen Belgia kirjanik ja arvutiteaduste tudeng. Saate mulle alati teha teene hea artikliidee, raamatusoovituse või retseptiideega.