JVM (Java Virtual Machine) je abstraktní stroj. Je to specifikace, která poskytuje běhové prostředí, ve kterém lze spustit bytecode java.
JVM jsou k dispozici pro mnoho hardwarových a softwarových platforem (tj. JVM je závislé na platformě).
To je:
datum použití java
- Specifikace kde je specifikováno fungování Java Virtual Machine. Ale poskytovatel implementace je nezávislý na výběru algoritmu. Jeho implementaci zajistila společnost Oracle a další společnosti.
- Implementace Jeho implementace je známá jako JRE (Java Runtime Environment).
- Runtime instance Kdykoli napíšete příkaz java do příkazového řádku pro spuštění třídy java, vytvoří se instance JVM.
Co to dělá
JVM provádí následující operace:
- Načte kód
- Ověřuje kód
- Spustí kód
- Poskytuje běhové prostředí
- Hromada odpadků
- Hlášení fatálních chyb atd.
Architektura JVM
Pojďme pochopit vnitřní architekturu JVM. Obsahuje classloader, paměťovou oblast, prováděcí engine atd.
1) Classloader
Classloader je subsystém JVM, který se používá k načítání souborů tříd. Kdykoli spustíme java program, je nejprve načten classloaderem. V Javě jsou tři vestavěné classloadery.
//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()); } }Otestujte to hned
Výstup:
sun.misc.Launcher$AppClassLoader@4e0e2f2a null
Toto jsou interní zavaděče tříd poskytované Javou. Pokud si chcete vytvořit svůj vlastní classloader, musíte rozšířit třídu ClassLoader.
Class(Method) Area ukládá struktury pro jednotlivé třídy, jako je fond konstant za běhu, data polí a metod, kód metod.
3) Hromada
Je to oblast runtime dat, ve které jsou alokovány objekty.
co dělá počítač rychlým
Java Stack stores frames. Obsahuje lokální proměnné a dílčí výsledky a hraje roli při vyvolání a návratu metody.
Každé vlákno má soukromý zásobník JVM vytvořený současně s vláknem.
Při každém vyvolání metody se vytvoří nový rámec. Rámec je zničen po dokončení vyvolání jeho metody.
Registr PC (program counter) obsahuje adresu aktuálně prováděné instrukce virtuálního stroje Java.
6) Zásobník nativních metod
Obsahuje všechny nativní metody používané v aplikaci.
Obsahuje:
Java Native Interface (JNI) je rámec, který poskytuje rozhraní pro komunikaci s jinou aplikací napsanou v jiném jazyce, jako je C, C++, Assembly atd. Java používá rámec JNI k odesílání výstupu do konzole nebo k interakci s knihovnami OS.