Mis on JVM?

JVM on spetsifikatsioon, kus kirjeldatakse spetsiaalselt Java virtuaalmasina toimimist. Algoritm on aga iseseisev identiteet, mille valib ainult rakenduse pakkuja, näiteks Oracle ja teised tuntud ettevõtted. JVM on sellisena rakendus, mida tuntakse Java Runtime Environment (JRE) nime all.

Definitsioon

Seda määratletakse tarkvaraprogrammi kirjeldusena, mis pakub koodile ja selle olulisele täitmisele käituskeskkonda. Teisisõnu, kuidas me Java programme käivitame - konfigureerime JVM-i sätted ja usaldame sellele, et ta saaks täitmisprotsessi ajal programmi ressurssidega hakkama.

Mõistmine

Java on Java virtuaalmasina tõttu tuntud kui platvormist sõltumatu. Kui edastamine toimub erinevates arvutites, kus erineval operatsioonisüsteemil on JVM, tõlgendab JVM baitkoodi masinataseme keeles. Kui täpne olla, siis JVM programmid on kirjutatud C programmeerimiskeeles, samas kui JVM on operatsioonisüsteemist sõltumatu. See on Java arhitektuuri põhikomponent.

Lisaks kõigele sellele vastutab Java-programmi jaoks vajaliku mälu määramise eest. Samuti vastutab ta mäluruumi keelamise eest.

Mida see teeb?

JVM teostavad järgmised olulised toimingud:

  • Koodi laadimine
  • Koodi kontrollimine
  • Koodi täitmine
  • Kestuskeskkonna pakkumine

Lisaks kõigele sellele koondab see klassifailivormingu, mäluala, prügikogutud hunniku, registrikomplekti, fataalsetest vigadest teatamise jne klassifikatsioonid.

JVM arhitektuur

Saame mõned peamised teadmised JVM-i sisearhitektuurist, mis koosneb järgmistest osadest:

1. Klassilaadur

See on JVM-i alamsüsteem, mida kasutatakse klassifailide laadimiseks. Java programmi käitamise ajal laadib selle esmalt klassi laadur. Kolm Java-laadijat on järgmised:

a) Bootstrap ClassLoader

See on Extensioni klassi laaduri superklass. See aitab laadida rt.jar-faile, mis kannavad kõiki klassifaile.

b) Extension ClassLoader

See on süsteemi Systemloader vanemklassi laadija ja Bootstrapi lapsklassi laadija. Jakafailides $ JAVA_HOME / jre / lib / ext olevad failid saab lahti võtta Extension ClassLoader kaudu.

C) System / Application ClassLoader

See on Extensioni klassi laaduri laps, tuntud ka kui rakenduse klassi laadur. Klassifailist klassifailid saab selle kaudu ekstraheerida. Classpath, mis on seatud praegusesse kataloogi, saab vaikimisi muuta lüliti '-cp' või '-classpath' abil.

2.Klassi (meetodi) piirkond

Klassieelsed struktuurid, nagu väljade ja meetodite andmed, käituskonstandi kogum ja meetodite kood, salvestatakse klassi (meetodi) ala. See on mälu, mis luuakse JVM-i käivitamisel ja mida jagatakse kõigi lõimede vahel nagu Heap.

3. Hunnik

Objektid määratakse selle kasuliku käitusaja andmeala kaudu. See on mälu koht, kuhu salvestatakse objekte koos selle esinemismuutujatega. Kui Java-siseselt mõni objekt luuakse, läheb see hunnikusse - mäluala.

4. Virna

Raamide salvestamise kõrval hoiab Java Stack ka muutujaid ja osalisi tulemusi. Samuti mängib see pöördelist rolli meetodis, kutsumises ja tagasipöördumises. Iga üksik lõim koosneb privaatsest JVM-i virnast, mis luuakse korraga lõimega. Kui meetod laieneb, genereeritakse uus raam ja see purustatakse, kui meetodi kutsumine on lõpule viidud.

5. Programmiloenduri (PC) register

PC-register sisaldab JVM-i käsuaadressi selle täitmise ajal. Juhiseid jälgides on sellel väärtus igal käsul, mis on looduslike meetodite puhul määratlemata.

6. Pärismeetodi virn

Rakendustes kasutatavad looduslikud protseduurid on looduslike meetodite korstna osa. Need meetodid on kirjutatud muudes keeltes kui Java. Iga lõimega seostudes ei saa JVM-i rakendused tugineda tavapärastele korstnatele ega saa natiivseid meetodeid laadida. Täpsuse mõttes sarnaneb see virnaga, kuid seda kasutatakse looduslike meetodite jaoks.

7. Mootor

Olles JVM-i põhiaspekt, suhtleb ta oma erinevate mälualadega. See sisaldab:

a. Prügikorjaja

See mängib olulist rolli JVM-i dünaamilises mäluhaldussüsteemis. Mälu, mis on hõivatud ja millele enam ükski juurdepääsetavatest Java objektidest ei viita, vabastatakse prügikoguja kaudu.

b. Tõlk

Pärast baidikoodivoo lugemist täidab see juhised.

c. Just-in-Time (JIT) koostaja

Toimivuse suurendamise lubamisel kompileerib JIT-i kompilaator baitkoodi osi samal ajal sama funktsionaalsusega. See aitab vähendada koostamisprotsessi jaoks kuluvat aega.

8. Java omapärane liides (JNI)

Teistes keeltes skripteeritud rakendused, nt C, C ++, Assamblee jne, saab ühendada JNI tarnitud liidese kaudu. JNI-raamistikku kasutab Java OS-i teekidega suhtlemiseks või konsooli väljundi saatmiseks.

Mis kasu on JVMist?

JVM-il on kaks peamist funktsiooni: lubada Java-programmidel töötada mis tahes seadmes või opsüsteemis (tuntud kui põhimõtte „Kirjuta üks kord, jookse ükskõik kuhu“) ning hallata ja optimeerida programmi mälu.

Eelised ja puudused

Java-programme täidetakse JVM-i kaudu. Baidikood - vahekeelt kasutatakse Java programmide kompileerimiseks ja seejärel käivitatakse see JVM-i kaudu. Iga individuaalset programmi, mis on komponeeritud baidikoodiks, saab teostada mis tahes JVMi töötav platvorm. See võimaldab Java tarkvara nii erinevatele platvormidele tõhusamalt kui ka ühilduvamaks muuta. JVM-il on mõned märkimisväärsed eelised ja puudused, mida iga arendaja peaks enne Java arendusse investeerimist hoolikalt kaaluma.

1. Turvalisus

JVM-i turvaaukude kaudu saavad programmeerijad tõhusalt kirjutada tipptasemel turvatud Java-programme. See annab operatsioonisüsteemi ressurssidele pahatahtliku tarkvara tuvastamise ja aitab ka selle ennetamisel.

2. Sooritus

JVM-il töötavad Java-programmid pakuvad C ++ -s kirjutatud programmidega võrreldes aeglasemalt täitmist. Selle põhjuseks on koodi optimeerimine, mis tugineb ülemäära erinevatele süsteemispetsiifilistele funktsioonidele. Samuti ei saa Java baitkoodi konkreetse riistvarakomplekti jaoks optimeerida, kuna see on süsteemneutraalne.

3. Korrektsus

Õige on programm, mis toimib tõhusalt ja vastab maksimaalselt kasutaja ootustele. JVM-i sisseehitatud funktsioonid võimaldavad sellel õigesti ja vigadeta töötada.

Miks peaksime kasutama JVM-i?

Hoolimata Java süntaktilisest koodist, saab JVM töötada erinevates keeleprogrammides. Allpool on toodud mõned põhjused, miks seda nii laialt kasutatakse ja miks seda eri platvormidel kasutada:

See kasutab kuhjamälu: kuhjamälu on põhikomponent, mida kasutatakse dünaamilise mälu eraldamiseks klasside määratlemiseks ja objektide lähtestamiseks ning kuna JVM toetab kuhjamälu, on see laialt aktsepteeritud.

Kaugkoodi asukoha turvalisuse tagamine: JVM-i raamistik on konstrueeritud nii, et kaugrakendust saab hõlpsasti teostada. Seda teooriat järgitakse Java-apleti rakendamisel.

Järeldus

Fakt, et JVM töötab mitmes opsüsteemis, annab sellele tehnoloogiavaldkonnas pöidla. Kasutades seda Windowsis, Linuxis ja teistes operatsioonisüsteemides, on see lubatud muuta baitkoode sõltumata käivitatavast riistvarast ja operatsioonisüsteemist. Lisaks on JVM-i võime minevikus nii edukas ja ka tulevikus domineeriv võimalus pakkuda hostarvutile turvalisust, kaitstes nende andmeid ja programmi.

Soovitatavad artiklid

See on olnud teemaks Mis on JVM (Java virtuaalne masin). Siin arutasime põhimõisteid JVM-i arhitektuuri ja kasutusalade loeteluga. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Parimad Javascripti raamistikud
  2. Kas Python objekt on orienteeritud
  3. C ++ rakendused reaalses maailmas
  4. Karjäär ASP.NET-is
  5. JRE vs JVM | 8 parimat erinevust (infograafika)

Kategooria: