Što je JVM?

JVM je Specifikacija u kojoj je posebno opisano funkcioniranje Java Virtual Machine. Međutim, algoritam je neovisan identitet koji je odabrao samo pružatelj usluga kao što su Oracle i druge renomirane tvrtke. Kao takav, JVM je implementacija poznata kao Java Runtime Environment (JRE).

definicija

Definiran je kao opis softverskog programa koji nudi okruženje za vrijeme izvođenja koda i njegovo značajno izvršavanje. Drugim riječima, to je način na koji pokrećemo Java programe - konfiguriramo JVM-ove postavke i oslanjamo se na njega kako bi se nosio s programskim resursima tijekom procesa izvršenja.

Razumijevanje

Java je poznata kao platforma neovisna zbog Java Virtual Machine. Kad se podnošenje vrši na različitim računalima s različitim operativnim sustavom koji imaju JVM, bajt kod se JVM interpretira na strojnom jeziku. Točnije, programi JVM napisani su programskim jezikom C, dok je JVM neovisan o operativnom sustavu. Ključna je komponenta Java arhitekture.

Pored svega navedenog, odgovoran je za dodjeljivanje esencijalne memorije koju zahtijeva Java program. Također je odgovoran za zabranu memorijskog prostora.

Što to radi?

Ključne operacije koje provodi JVM su sljedeće:

  • Učitavanje koda
  • Provjera koda
  • Izvođenje koda
  • Pružanje okoliša za vrijeme izvođenja

Uz sve to, on razvrstava klasifikacije za format datoteke klase, područje memorije, gomilu sakupljenu od smeća, skup registra, fatalno prijavljivanje grešaka itd.

JVM Arhitektura

Donosimo nekoliko ključnih uvida u internu arhitekturu JVM-a koja se sastoji od:

1. Uređivač razreda

To je podsustav JVM-a koji se koristi za učitavanje datoteka klasa. Tijekom izvođenja java programa prvo ga učitava učitelj. Tri utovarivača razreda koja Java uključuje su sljedeća:

a) Bootstrap ClassLoader

To je viši razred učitelja za proširenje. Pomaže pri učitavanju rt.jar datoteka koje nose sve datoteke klase.

b) ClassLoader proširenja

To je nadređeni program za učitavanje System Classloader-a i dječji učitač Bootstrapa. Datoteke staklenki u direktoriju $ JAVA_HOME / jre / lib / ext mogu se izvući kroz Extension ClassLoader.

C) Sustav / Application ClassLoader

To je dijete produžitelja klase Extension, poznato i kao Application classloader. Datoteke klase s classpath mogu se izvući kroz njega. Classpath, koji je prema zadanom postavljen u trenutni direktorij, može se mijenjati pomoću prekidača '-cp' ili '-classpath'.

2. Područje klase (metoda)

Strukture predklasa poput podataka o polju i metodama, konstantno spremanje vremena izvođenja i kod za metode pohranjuju se u područje klase (metode). To je memorija koja je stvorena pri pokretanju JVM-a i dijeli se na sve teme poput Heap-a.

3. Heap

Objekti se dodjeljuju preko ovog korisnog područja podataka za vrijeme izvođenja. To je memorijsko mjesto za pohranjivanje predmeta, zajedno s njegovim varijablama instanci. Kad god se na Javi stvori objekt, on odlazi u gomilu - područje memorije.

4. Složiti

Uz pohranu okvira, Java Stack sadrži varijable i djelomične rezultate. Također igra ključnu ulogu u metodi, prizivu i povratku. Svaka pojedinačna nit sastoji se od svog privatnog JVM skupa, stvorenog istodobno s nitom. Kad god metoda eskalira, nastaje novi okvir i razbija se po dovršetku poziva.

5. Registar brojača programa (PC)

Računalni registar sadrži adresu instrukcije JVM u trenutku njegovog izvođenja. Prateći upute, ima vrijednost za svaku instrukciju koja nije definirana za izvorne metode.

6. Stage izvornih metoda

Izvorni postupci koji se koriste u aplikacijama dio su skupa Native Method. Ove se metode pišu na drugim jezicima osim na Javi. Povezane sa svakom niti, implementacije JVM-a ne mogu se oslanjati na konvencionalne skupove i ne mogu učitavati izvorne metode. Da budemo precizni, sličan je hrpi, ali koristi se za izvorne metode.

7. Motor

Budući da je ključni aspekt JVM-a, on komunicira s različitim područjima memorije. Ovo uključuje:

a. Sakupljač smeća

Ovo igra vitalnu ulogu u JVM-ovom dinamičnom sustavu upravljanja memorijom. Memorija koja je zauzeta i na koju se više ne odnosi niti jedan od pristupačnih Java objekata oslobađa se kroz Garbage Collector.

b. Tumač

Ona izvršava upute nakon što je pročitala stream bytecode.

c. Just-in-Time (JIT) prevodilac

Omogućujući poboljšanje performansi, JIT prevodilac istovremeno sastavlja dijelove bajt-koda sa sličnom funkcionalnošću. To pomaže u smanjenju vremena potrebnog za postupak kompilacije.

8. Java native sučelje (JNI)

Aplikacije skriptirane na drugim jezicima, npr. C, C ++, Montaža, itd. Mogu se povezati putem sučelja koje isporučuje JNI. JNI okvir Java koristi za interakciju s OS knjižnicama ili za slanje rezultata na Konzolu.

U čemu se koristi JVM?

JVM ima dvije glavne funkcije: omogućiti Java programima da se pokreću na bilo kojem uređaju ili operativnom sustavu (poznat kao princip „Write one, run where“) i za upravljanje i optimizaciju programske memorije.

Prednosti i nedostatci

Java programi se prikladno izvršavaju kroz JVM. Bytecode - srednji jezik koristi se za sastavljanje Java programa i zatim se izvodi preko JVM. Svaki pojedinačni program koji se sastavlja u bajt kod može izvoditi bilo koja platforma koju pokreće JVM. Ovo omogućava Java softveru učinkovitiji i kompatibilniji ovisno o različitim računalnim platformama. JVM ima nekoliko značajnih prednosti i nedostataka koje bi svaki programer trebao pažljivo odmjeriti prije ulaganja u razvoj Jave.

1. Sigurnost

Kroz JVM-ove sigurnosne poteze, programeri mogu učinkovito pisati Java-programe visoke klase. Ona omogućuje resursima operativnog sustava da identificiraju zlonamjerni softver i također pomaže u njegovoj prevenciji.

2. Performanse

Java programi koji se izvode na JVM vjerojatno će nuditi sporije izvršavanje u odnosu na programe koji su napisani u C ++. To je zbog optimizacije koda koja se pretjerano oslanja na različite značajke specifične za sustav. Također, Java bajt kod ne može se optimizirati za određeni hardverski skup jer je neutralan za sustav.

3. Ispravnost

Ispravno je program, koji djeluje učinkovito i u potpunosti ispunjava očekivanja korisnika. Ugrađene značajke tvrtke JVM omogućuju mu pravilan rad i bez grešaka.

Zašto trebamo koristiti JVM?

Unatoč tome što ima Java sintaktički kôd, JVM može raditi na različitim jezicima. Niže su razlozi zašto se toliko široko koristi i zašto je koristiti na različitim platformama:

Koristi heap memoriju: Heap memorija je osnovna komponenta koja se koristi za dinamičku raspodjelu memorije za definiranje klasa i inicijalizaciju objekata, a budući da JVM podržava heap memoriju, ona je široko prihvaćena.

Pružanje sigurnosti za udaljenu lokaciju koda: JVM okvir dizajniran je na način da se daljinska aplikacija lako izvršava. Ova se teorija slijedi za izvršavanje Java Appleta.

Zaključak

Činjenica da JVM radi na više operativnih sustava daje mu se napredak u domeni tehnologije. Pomoću njega u sustavu Windows, Linux i ostalim OS-ovima omogućeno je transformiranje bajt kodova bez obzira na hardver i OS koji treba izvršiti. Uz to, njegova sposobnost pružanja sigurnosti glavnom računalu osiguravanjem njihovih podataka i programa još je jedan razlog zašto je JVM bio toliko uspješan u prošlosti i nastavlja biti dominantan u budućnosti.

Preporučeni članci

Ovo je vodič za Što je JVM (Java Virtual Machine). Ovdje smo razgovarali o osnovnim konceptima s popisom Arhitekture i upotrebe JVM-a. Možete i proći naše druge predložene članke da biste saznali više -

  1. Najbolji okviri Javascript
  2. Je li objekt Python orijentiran
  3. Primjene C ++ u stvarnom svijetu
  4. Karijera u ASP.NET-u
  5. JRE vs JVM | Top 8 razlike s (Infographics)

Kategorija: