Skelbimas

„Java“ virtualioji mašina (JVM) yra tikrojo vardo lašintuvas, kai jūs programuojate „Java“. Priešingai nei nurodo pavadinimas, „Java“ virtualioji mašina gali būti sutinkama ir su kitomis programavimo kalbomis.

Apskritai nebūtina žinoti, kas yra „Java“ virtualioji mašina ar net ką ji daro, kad galėtumėte programuoti „Java“. Kita vertus, susipažinimas su vidiniu mašinos veikimu padeda pagerinti jūsų supratimą ir bendrą supratimą.

Šiame straipsnyje aprašoma „Java“ virtualios mašinos idėja, ką ji daro jums ir keletas svarbiausių privalumų ir trūkumų. Nors aš stengiausi, kad tai būtų paprasta, ir šia tema tikrai yra išsamesnės literatūros, tikimasi pradinio Java supratimo ir programavimo.

Aukšto lygio kalbos

Programavimo kalbos semantika sukurta taip, kad atitiktų natūralią mūsų kalbą, išliktų glausta ir lengvai suprantama mašinai. Kaip jūs tikriausiai žinote, programavimo kalba visiškai skiriasi nuo kompiuterio kodo, instrukcijų rinkinio, kurį kompiuteris naudoja programai kurti ir vykdyti. Tai mes vadiname aukšto lygio kalbos; vienas ar keli abstrakcijos lygiai iš mašinos kodo.

instagram viewer

Prieš pradedant veikti, pirmiausia reikia išaiškinti aukšto lygio kodą. Daugybė programavimo sąsajų susideda iš anksto (AOT kompiliacija) konkrečiai platformai. Tai daro programą efektyvesnę vykdymo metu, tačiau daug mažiau suderinama su įvairiomis platformomis. „Java“, priešingai, veikia su tarpine kalba, vadinama „Java“ baitinis kodas ir „Java“ virtualioji mašina.

JVM ir „Java“ baitų kodas

Kai jūsų „Java“ projektas sukuriamas, jis išverčia šaltinio kodą (yra *.java šaltinio failai) į „Java“ baitų kodą (dažniausiai yra * .class failuose). Tai pakelia jūsų aukšto lygio kodą vienu žingsniu arčiau mašinos kodo, bet dar ne iki galo. Šis baitas yra kompaktiškų instrukcijų rinkinys; mašinai lengviau suprasti, bet mažiau skaitomas.

Kai paleidžiate „Java“ programą savo kompiuteryje, mobiliajame telefone ar bet kurioje kitoje „Java“ palaikančioje platformoje, šį „Java“ baitą iš esmės perduodate „Java“ virtualiajai mašinai. Vertėjas „Java“ virtualioje mašinoje paprastai pradeda kaupti visą baitinį kodą vykdydamas laiką, vadovaudamasis vadinamųjų tiesioginio laiko kompiliacija. Tai padaro tipišką, nors ir nedidelį, atidarant „Java“ programą, tačiau paprastai pagerina programos našumą, palyginti su interpretuota kompiliacija.

„Java“ virtualioji mašina

Pagrindinis šios sistemos pranašumas yra padidėjęs suderinamumas. Kadangi jūsų programos veikia virtualioje mašinoje, o ne tiesiogiai jūsų aparatinėje įrangoje, kūrėjas gali programuoti ir vieną kartą sukurkite jų programą, kurią vėliau galėsite vykdyti kiekviename įrenginyje, įdiegę „Java Virtual“ Mašina. Šis principas pagimdė „Java“ šūkį: „Parašyk vieną kartą, bėk visur.”

Pro: suderinamumas ir padidintas saugumas

Be kodo suderinamumo, „Java“ virtualioji mašina turi ir kitų privalumų. Vienas iš svarbiausių iš jų yra santykinis „Java“ programų saugumas, atsirandantis dėl „Java“ virtualios mašinos. Saugumas, reiškiantis, kad virtualioje mašinoje veikianti programa yra daug mažesnė tikimybė sugadinti vartotojo operacinę sistemą arba sugadinti duomenų failus, jei įvyks klaidų.

Con: Skirtingi JVM diegimai ir derinimo darbai

Viena pagrindinių kritikų, išreikštų kodo suderinamumui ir „Java Virtual Machine“, yra dėl daugybės skirtingų pastarųjų įgyvendinimų. Matote, „Java“ virtualioji mašina nėra viena programinės įrangos dalis. „Java“ savininkai „Oracle“ turi įdiegti „Java“ virtualią mašiną, tačiau kiti žmonės gali pateikti savo, jei ji patenkina įvairius praktinius ir sutartinius reikalavimus.

Šie skirtingi diegimai reiškia, kad jūsų kodas gali sklandžiai veikti vienoje „Java“ virtualioje mašinoje, bet sudužti ir sudegti kitoje. Nors praktikoje kodą galite parašyti vieną kartą ir paleisti visur, kartais sudėtingesnis kodas vis dar reikia derinti skirtingose ​​„Java Virtual Machine“ diegimuose, kad būtų užtikrintas teisingas veikimas.

Ar turite patirties dirbant su „Java“ virtualia mašina? Jei taip, ar čia yra kažkas, ką praleidau, ką reikėtų paminėti?

Vaizdo kreditas: Michaelaw, Dcoetzee

Aš esu rašytoja ir informatikos studentė iš Belgijos. Visada galite man padaryti paslaugą naudodami gerą straipsnio idėją, knygos rekomendaciją ar recepto idėją.