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:
- 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.
- Izvedba Njegova izvedba je znana kot JRE (Java Runtime Environment).
- 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.
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.
//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:
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