JVM - Kaj je navidezni stroj Java & njegova arhitektura

Kazalo:

Anonim

Kaj je JVM?

Java Virtual Machine (JVM) je motor, ki zagotavlja izvajalno okolje za poganjanje kode Java ali aplikacij. Preoblikuje bajtno kodo Java v jezik strojev. JVM je del Java Run Environment (JRE). V drugih programskih jezikih prevajalnik izdela strojno kodo za določen sistem. Vendar prevajalnik Java proizvaja kodo za navidezni stroj, znan kot Javni navidezni stroj.

Evo, kako deluje JVM

Najprej se Java koda upošteva v bajt kodo. Ta bajtoda se interpretira na različnih strojih

Bytecode je med gostiteljskim sistemom in virom Java posredniški jezik.

JVM v Javi je odgovoren za dodeljevanje pomnilniškega prostora.

Delovanje navideznega računalnika Java (JVM)

V tej vadnici JVM boste izvedeli-

  • Arhitektura JVM
  • Proces priprave in izvedbe programske kode
  • Postopek priprave in izvedbe kode C
  • Proces prevajanja in izvajanja Java kode
  • Zakaj je Java interpretiran in preveden jezik?
  • Zakaj je Java počasna?

Arhitektura JVM

Zdaj v tej vadnici JVM, dajmo razumeti arhitekturo JVM. Arhitektura JVM v Javi vsebuje nalagalnik razredov, področje pomnilnika, izvršilni mehanizem itd.
Javna arhitektura navideznih strojev

1) ClassLoader

Nalagalnik razredov je podsistem, ki se uporablja za nalaganje datotek razredov. Izvaja tri glavne funkcije, in sicer Nalaganje, povezovanje in inicializacija.

2) Območje metode

Območje metode JVM hrani strukture razredov, kot so metapodatki, konstantno področje izvajanja in koda za metode.

3) Kup

Vsi predmeti, z njimi povezane spremenljivke primerkov in nizi so shranjeni na kopici. Ta spomin je skupen in je v skupni rabi med več niti.

4) JVM jezikovni skladi

Java jezikovni skladi shranjujejo lokalne spremenljivke in so delni rezultati. Vsaka nit ima svoj sklad JVM, ustvarjen istočasno, ko nit nastane. Nov okvir se ustvari vsakič, ko se prikliče metoda, in se izbriše, ko je postopek klica metode končan.

5) Registri za osebni računalnik

V registru osebnega računalnika je shranjen naslov navodil za navidezni stroj Java, ki se trenutno izvajajo. V Javi ima vsaka nit svoj ločen register za osebni računalnik.

6) Nativni načini metod

Izvorni skladi metod vsebujejo navodila izvorne kode, odvisno od izvorne knjižnice. Namesto Jave je napisan v drugem jeziku.

7) Izvedbeni stroj

To je vrsta programske opreme, ki se uporablja za testiranje strojne opreme, programske opreme ali celotnih sistemov. Motor za izvajanje preizkusov nikoli ne vsebuje nobenih informacij o preizkušenem izdelku.

8) Native Method vmesnik

Native Method Interface je programski okvir. Kodi Java, ki se izvaja v JVM, omogoča, da pokliče knjižnice in izvorne aplikacije.

9) Knjižnice izvornih metod

Native Libraries je zbirka Native Libraries (C, C ++), ki jih potrebuje Execution Engine.

Proces priprave in izvedbe programske kode

Za pisanje in izvajanje programske opreme potrebujete naslednje

1) Urejevalnik - Za vpis programa lahko za to uporabite beležko

2) Prevajalnik - za pretvorbo visokojezičnega programa v domačo strojno kodo

3) Povezovalnik - združitev različnih referenc programskih datotek v glavnem programu.

4) Loader - za nalaganje datotek iz vaše sekundarne naprave za shranjevanje, kot so trdi disk, bliskovni pogon in CD, v RAM za izvedbo. Nalaganje se samodejno izvede, ko zaženete kodo.

5) Izvedba - dejansko izvajanje kode, s katero upravlja vaš operacijski sistem in procesor.

S tem ozadjem si oglejte naslednji video in se naučite notranjega delovanja in arhitekture JVM JVM (Java Virtual Machine).

Kliknite tukaj, če video ni dostopen

Postopek priprave in izvedbe kode C

Da bi razumeli postopek prevajanja Java v Javi. Najprej si oglejmo postopek zbiranja in povezovanja v jeziku C.

Recimo, da ste v glavnem poklicali dve funkciji f1 in f2. Glavna funkcija je shranjena v datoteki a1.c.

Funkcija f1 je shranjena v datoteki a2.c

Funkcija f2 je shranjena v datoteki a3.c

Vse te datoteke, tj. A1.c, a2.c in a3.c, se pošljejo v prevajalnik. Čigar izhod so ustrezne objektne datoteke, ki so strojna koda.

Naslednji korak je integracija vseh teh predmetnih datotek v eno datoteko .exe s pomočjo povezovalnika. Povezovalnik bo vse te datoteke združil in ustvaril datoteko .exe.

Med izvajanjem programa bo program za nalaganje naložil a.exe v RAM za izvajanje.

Zbiranje in izvajanje Java kode v Java VM

Zdaj v tej vadnici JVM si oglejmo postopek za JAVA. V glavnem imate dve metodi f1 in f2.

  • Glavna metoda je shranjena v datoteki a1.java
  • f1 je shranjen v datoteki kot a2.java
  • f2 je shranjen v datoteki kot a3.java

Prevajalnik bo sestavil tri datoteke in ustvaril 3 ustrezne datoteke .class, ki je sestavljena iz kode BYTE. Za razliko od C povezovanje ni izvedeno .

Java VM ali Java Virtual Machine je v RAM-u. Med izvajanjem se z nalagalnikom razredov datoteke razreda prenesejo v RAM. Koda BYTE je preverjena za morebitne kršitve varnosti.

Nato bo izvršilni mehanizem pretvoril bytecode v izvorno strojno kodo. To je ravno pravočasno sestavljanje. To je eden glavnih razlogov, zakaj je Java razmeroma počasna.

OPOMBA: JIT ali Just-in-time compiler je del Java Virtual Machine (JVM). Interpretira del bajtne kode, ki ima isto funkcijo hkrati.

Zakaj je Java interpretiran in preveden jezik?

Programski jeziki so razvrščeni kot
  • Jezik višje stopnje Npr. C ++, Java
  • Jeziki na srednji ravni Napr. C
  • Nizka jezikovna skupščina Ex
  • končno najnižja raven kot Strojni jezik.

Prevajalnik je program, ki pretvori program iz ene ravni jezika v drugega. Primer pretvorbe programa C ++ v strojno kodo.

Java prevajalnik pretvori kodo Java na visoki ravni v bajtno kodo (ki je tudi vrsta strojne kode).

Tolmač je program, ki pretvori program na enega nivoja na drugega programskega jezika na isti ravni. Primer pretvorbe Java programa v C ++

V Javi generator Just In Time Code pretvori bajtno kodo v izvorno strojno kodo, ki je na isti programski ravni.

Zato je Java tako sestavljen kot tudi interpretiran jezik.

Zakaj je Java počasna?

Dva glavna razloga za počasnost Java sta

  1. Dinamično povezovanje: Za razliko od C povezovanje poteka med izvajanjem, vsakič, ko se program zažene v Javi.
  2. Tolmač med izvajanjem: pretvorba bajtne kode v izvorno strojno kodo se izvede v Java-u med izvajanjem, kar še bolj upočasni

Vendar je najnovejša različica Jave v veliki meri odpravila ozka grla pri zmogljivosti.

Povzetek :

  • Popolna oblika JVM je Java Virtual Machine. JVM v Javi je motor, ki poganja kodo Java. Preoblikuje bajtno kodo Java v jezik strojev.
  • Arhitektura JVM v Javi vsebuje nalagalnik razredov, področje pomnilnika, izvršilni mehanizem itd.
  • V JVM se koda Java prevede v bajt kodo. Ta bajtoda se interpretira na različnih strojih
  • JIT pomeni Just-in-time compiler. JIT je del Java Virtual Machine (JVM). Uporablja se za pospešitev časa izvedbe
  • V primerjavi z drugimi stroji za prevajanje je JVM v Javi lahko počasen pri izvajanju.