Kaj je JVM?

JVM je Specifikacija, kjer je delovanje Java virtualnega stroja posebej opisano. Vendar je algoritem neodvisna identiteta, ki jo izbere le izvajalec, kot je Oracle in druga priznana podjetja. Tako je JVM implementacija, znana kot Java Runtime Environment (JRE).

Opredelitev

Opredeljen je kot opis programske opreme, ki ponuja čas izvajanja kode in njegovo pomembno izvedbo. Z drugimi besedami, kako izvajamo programe Java - konfiguriramo nastavitve JVM in se nanj zanašamo, da se lahko med izvajanjem spopadejo s programskimi viri.

Razumevanje

Java je znana kot platforma neodvisna zaradi navideznega stroja Java. Ko se oddaja v različne računalnike z različnim operacijskim sistemom, ki ima JVM, se bajtna koda JVM interpretira v jezik računalniškega nivoja. Natančneje, programi JVM so napisani v programskem jeziku C, JVM pa je neodvisen od operacijskega sistema. Je ključna sestavina Java arhitekture.

Poleg vsega tega je odgovoren za dodelitev osnovnega pomnilnika, ki ga zahteva program Java. Odgovoren je tudi za prepoved pomnilniškega prostora.

Kaj počne?

Ključne operacije, ki jih izvaja JVM, so:

  • Nalaganje kode
  • Preverjanje kode
  • Izvajanje kode
  • Zagotavljanje okolja izvajanja

Poleg vsega tega razvršča klasifikacije za obliko datoteke datoteke Class, pomnilniško območje, kopico, zbrano s smeti, set registrov, poročanje o napačnih napakah itd.

JVM Arhitektura

Pridobimo nekaj ključnih spoznanj o notranji arhitekturi JVM, ki obsega:

1. Nakladnik

To je podsistem JVM, ki se uporablja za nalaganje datotek razreda. Med izvajanjem programa java ga najprej naloži učitelj. Trije nosilci razredov, ki jih vključuje Java, so:

a) Bootstrap ClassLoader

To je vrhunski razred učilnika razširitev. Pomaga pri nalaganju datotek rt.jar, ki nosi vse datoteke razreda.

b) Razširitveni ClassLoader

To je nadrejeni razdelovalec razredov System Classloader in nadrejeni otroški nalagalnik Bootstrap. Datoteke jarkov znotraj direktorija $ JAVA_HOME / jre / lib / ext lahko izvlečete s pomočjo Extell ClassLoader.

C) Sistemski / aplikacijski ClassLoader

To je otrok razdelilnika razredov razširitev, znan tudi kot Application classloader. Skozi njo lahko izvlečete datoteke razreda s classpath. Classpath, ki je privzeto nastavljen na trenutni imenik, lahko spremenite s stikalom '-cp' ali '-classpath'.

2. Območje razreda (metoda)

Strukture predklasa, kot so podatki polja in metod, konstantni obseg izvajanja in koda za metode, so shranjeni v območju razreda (metode). To je spomin, ki je ustvarjen ob zagonu JVM in si ga deli med vsemi Niti, kot je Heap.

3. Kup

Predmeti so dodeljeni s tem uporabnim območjem podatkov o izvajanju. To je pomnilniško mesto, v katerem se shranjujejo predmeti skupaj z njegovimi spremenljivkami primerkov. Kadar koli se na Javi ustvari predmet, gre v kup - območje spomina.

4. Zložite

Poleg shranjevanja okvirjev ima Java Stack spremenljivke in delne rezultate. Prav tako igra ključno vlogo pri metodi, priklicu in vrnitvi. Vsaka posamezna nit je sestavljena iz svojega zasebnega JVM sklada, ustvarjenega hkrati z nitjo. Kadar koli metoda eskalira, se ob zaključku priklica metode ustvari nov okvir in se razbije.

5. Register števca programov (PC)

Register osebnih računalnikov vsebuje naslov navodil JVM v času njegove izvedbe. Če sledite navodilom, ima vrednost za vsako navodilo, ki ni definirano za izvorne metode.

6. Nabor metod

Naravni postopki, ki se uporabljajo v aplikacijah, so del Native Method Stack. Te metode so napisane v jezikih, ki niso Java. Povezave z vsako nitjo se izvedbe JVM ne morejo zanesti na običajne sklade in ne morejo naložiti izvornih metod. Če sem natančen, je podoben skladanju, vendar se uporablja za izvorne metode.

7. Motor

Kot ključni vidik JVM komunicira z različnimi pomnilniškimi področji. To vključuje:

a. Zbiralec smeti

To igra ključno vlogo v sistemu dinamičnega upravljanja pomnilnika JVM. Pomnilnik, ki ga zasedajo in na katerega se ne nanaša več noben dosegljiv objekt Java, se sprosti prek Garbage Collector.

b. Tolmač

Navodila izvrši po branju toka bajt.

c. Prevajalnik Just-In-Time (JIT)

Če omogoči izboljšanje zmogljivosti, prevajalnik JIT hkrati sestavi dele bajtode s podobno funkcionalnostjo. Pomaga zmanjšati čas, potreben za postopek kompilacije.

8. Java Native Interface (JNI)

Aplikacije, ki so napisane v drugih jezikih, npr. C, C ++, Montaža itd., Se lahko povežejo prek vmesnika, ki ga pošlje JNI. Java-okvir uporablja Java za interakcijo s knjižnicami OS ali za pošiljanje izhodov na konzolo.

Kakšna je uporaba JVM?

JVM ima dve glavni funkciji: dovoliti, da se programi Java izvajajo v kateri koli napravi ali operacijskem sistemu (znan kot načelo "Napiši enkrat, teči kamor koli") ter upravljati in optimizirati programski pomnilnik.

Prednosti in slabosti

Programi Java se primerno izvajajo prek JVM. Bytecode - vmesni jezik se uporablja za sestavljanje programov Java in se nato izvaja prek JVM. Vsak posamezen program, ki je sestavljen v bajt kodo, lahko izvaja katera koli platforma, ki jo poganja JVM. To omogoča, da je programska oprema Java učinkovitejša in združljivejša glede na različne računalniške platforme. JVM ima nekaj pomembnih prednosti in slabosti, ki bi jih moral vsak razvijalec skrbno pretehtati, preden investira v razvoj Java.

1. Varnost

Skozi varnostne ovire JVM lahko programerji učinkovito napišejo javanske programe višjega cenovnega razreda. Z viri operacijskega sistema pooblašča za prepoznavanje zlonamerne programske opreme in v skladu s tem pomaga pri njenem preprečevanju.

2. Delovanje

Programi Java, ki se izvajajo na JVM, bodo verjetno nudili počasnejšo izvedbo v primerjavi s programi, ki so zapisani v C ++. To je posledica optimizacije kode, ki se pretirano opira na različne značilnosti sistema. Prav tako Java bajt ni mogoče optimizirati za določen strojni niz, saj je sistemsko nevtralen.

3. Pravilnost

Pravilni je program, ki deluje učinkovito in v celoti izpolni pričakovanja uporabnika. Vgrajene funkcije JVM omogočajo pravilno delovanje in brez napak.

Zakaj bi morali uporabljati JVM?

Kljub temu, da ima Java sintaktično kodo, lahko JVM deluje na različnih jezikovnih programih. Spodaj je navedenih nekaj razlogov, zakaj se tako pogosto uporablja in zakaj ga uporabljati na različnih platformah:

Uporablja heap spomin: Heap memory je jedrna komponenta, ki se uporablja za dinamično dodeljevanje pomnilnika za določanje razredov in inicializacijo predmetov, in ker JVM podpira heap memory, ima široko sprejemljivost.

Zagotavljanje varnosti za oddaljeno lokacijo kode: Okvir JVM je zasnovan tako, da se oddaljena aplikacija enostavno izvede. Ta teorija se uporablja za izvajanje Java Appleta.

Zaključek

Dejstvo, da JVM deluje na več operacijskih sistemih, mu omogoča povečanje števila na področju tehnologije. Z uporabo v operacijskem sistemu Windows, Linux in drugih operacijskih sistemih OS lahko omogoči preoblikovanje bajt kode ne glede na strojno opremo in operacijski sistem, ki naj se izvede. Poleg tega je njegova sposobnost zagotavljanja varnosti gostiteljskemu računalniku z varovanjem njihovih podatkov in programa še en razlog, zakaj je bil JVM v preteklosti tako uspešen in še naprej prevladuje v prihodnosti.

Priporočeni članki

To je vodnik o tem, kaj je JVM (Java Virtual Machine). Tu smo obravnavali osnovne koncepte s seznamom Arhitektura in uporabe JVM. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Najboljši okviri Javascript
  2. Je objekt usmerjen v Python
  3. Uporaba C ++ v realnem svetu
  4. Kariera v ASP.NET
  5. JRE proti JVM | Najboljših 8 razlik z (Infographics)