logo

Arhitektura JVM (Java Virtual Machine).

  1. Java Virtual Machine
  2. Notranja arhitektura JVM

JVM (Java Virtual Machine) je abstrakten stroj. To je specifikacija, ki zagotavlja okolje izvajanja, v katerem se lahko izvaja bajtna koda Java.

JVM so na voljo za številne platforme strojne in programske opreme (tj. JVM je odvisen od platforme).

100 kmh do mph

Kaj je JVM

Je:

  1. Specifikacija kjer je določeno delovanje Java Virtual Machine. Toda ponudnik implementacije je neodvisen pri izbiri algoritma. Njegovo implementacijo so zagotovili Oracle in druga podjetja.
  2. Izvedba Njegova izvedba je znana kot JRE (Java Runtime Environment).
  3. Primerek izvajalnega okolja Kadar koli v ukazni poziv napišete ukaz java za zagon razreda java, se ustvari primerek JVM.

Kaj počne

JVM izvaja naslednje operacije:

  • Naloži kodo
  • Preverja kodo
  • Izvaja kodo
  • Zagotavlja izvajalno okolje

JVM nudi definicije za:

  • Območje pomnilnika
  • Format datoteke razreda
  • Register set
  • Kup smeti
  • Poročanje o usodni napaki itd.

Arhitektura JVM

Razumejmo notranjo arhitekturo JVM. Vsebuje nalagalnik razredov, pomnilniško območje, izvajalni mehanizem itd.

Arhitektura JVM

1) Nalagalnik razredov

Classloader je podsistem JVM, ki se uporablja za nalaganje datotek razreda. Kadarkoli zaženemo program java, ga najprej naloži nalagalnik razredov. V Javi so trije vgrajeni nalagalniki razredov.

    Bootstrap ClassLoader: To je prvi nalagalnik razredov, ki je nadrazred nalagalnika razredov razširitve. Nalaga rt.jar datoteka, ki vsebuje vse datoteke razredov Java Standard Edition, kot so razredi paketov java.lang, razredi paketov java.net, razredi paketov java.util, razredi paketov java.io, razredi paketov java.sql itd.Razširitev ClassLoader: To je podrejeni nalagalnik razredov Bootstrap in nadrejeni nalagalnik razredov System classloader. Naloži datoteke jar, ki se nahajajo znotraj $JAVA_HOME/jre/lib/ext imenik.Sistem/aplikacija ClassLoader: To je podrejeni nalagalnik razredov razširitvenega nalagalnika razredov. Datoteke razredov naloži iz poti do razreda. Privzeto je razredna pot nastavljena na trenutni imenik. Razredno pot lahko spremenite s stikalom '-cp' ali '-classpath'. Znan je tudi kot nalagalnik razredov aplikacij.
 //Let's see an example to print the classloader name public class ClassLoaderExample { public static void main(String[] args) { // Let's print the classloader name of current class. //Application/System classloader will load this class Class c=ClassLoaderExample.class; System.out.println(c.getClassLoader()); //If we print the classloader name of String, it will print null because it is an //in-built class which is found in rt.jar, so it is loaded by Bootstrap classloader System.out.println(String.class.getClassLoader()); } } 
Preizkusite zdaj

Izhod:

 sun.misc.Launcher$AppClassLoader@4e0e2f2a null 

To so notranji nalagalniki razredov, ki jih ponuja Java. Če želite ustvariti lasten nalagalnik razredov, morate razširiti razred ClassLoader.

2) Področje razreda (metoda).

Območje razreda (metoda) shranjuje strukture po razredih, kot so nabor konstant izvajalnega časa, podatki o polju in metodi, koda za metode.

3) Kup

To je območje podatkov med izvajanjem, v katerem so dodeljeni objekti.

kako velik je ta monitor

4) Zložite

Java Stack shranjuje okvirje. Vsebuje lokalne spremenljivke in delne rezultate ter igra vlogo pri priklicu in vračanju metode.

Vsaka nit ima zasebni sklad JVM, ustvarjen hkrati z nitjo.

Nov okvir se ustvari vsakič, ko se prikliče metoda. Okvir je uničen, ko je priklic njegove metode končan.

5) Register programskega števca

PC (programski števec) register vsebuje naslov ukaza navideznega stroja Java, ki se trenutno izvaja.

6) Native Method Stack

Vsebuje vse izvorne metode, uporabljene v aplikaciji.

7) Izvedbeni motor

Vsebuje:

    Virtualni procesor Tolmač:Preberite tok bajtne kode in nato izvedite navodila.Just-In-Time (JIT) prevajalnik:Uporablja se za izboljšanje delovanja. JIT prevede dele bajtne kode, ki imajo istočasno podobno funkcionalnost, in tako skrajša čas, potreben za prevajanje. Tu se izraz 'prevajalnik' nanaša na prevajalnik iz nabora navodil virtualnega stroja Java (JVM) v nabor navodil določenega CPE-ja.

8) Izvorni vmesnik Java

Java Native Interface (JNI) je ogrodje, ki zagotavlja vmesnik za komunikacijo z drugo aplikacijo, napisano v drugem jeziku, kot je C, C++, Assembly itd. Java uporablja ogrodje JNI za pošiljanje izhoda v konzolo ali interakcijo s knjižnicami OS.

np.argmax