Co je JVM?

JVM je specifikace, kde je konkrétně popsána funkce Java Virtual Machine. Algoritmus je však nezávislá identita, která je vybrána pouze poskytovatelem implementace, jako je Oracle a další renomované společnosti. JVM je implementace známá jako Java Runtime Environment (JRE).

Definice

Je definován jako popis softwarového programu nabízejícího běhové prostředí pro kód a jeho významné provedení. Jinými slovy, takto spouštíme programy Java - konfigurujeme nastavení JVM a spoléháme na to, že se během procesu vypořádáme s programovými prostředky.

Porozumění

Java je známá jako platforma nezávislá díky Java Virtual Machine. Když je odesláno do různých počítačů s různým operačním systémem, který má JVM, je bytecode interpretován do jazyka na úrovni stroje pomocí JVM. Přesněji řečeno, programy JVM jsou psány v programovacím jazyce C, zatímco JVM je nezávislé na operačním systému. Je klíčovou součástí architektury Java.

Kromě toho všeho odpovídá za přiřazení základní paměti požadované programem Java. Je také zodpovědný za zákaz paměťového prostoru.

Co to dělá?

Klíčové operace, které JVM provádí, jsou následující:

  • Načítání kódu
  • Ověření kódu
  • Spuštění kódu
  • Poskytování běhového prostředí

Kromě toho vše zavádí klasifikace pro formát souborů třídy, oblast paměti, hromadu sbíraných odpadů, sadu registrů, hlášení závažných chyb atd.

Architektura JVM

Podívejme se na několik klíčových poznatků o vnitřní architektuře JVM, která zahrnuje:

1. Classloader

Je to subsystém JVM používaný k načtení souborů třídy. Při spuštění programu java se nejprve načte pomocí loadloaderu. Tři třídy loadloadery, které Java obsahuje, jsou následující:

a) Bootstrap ClassLoader

Je to super třída třídy Loadloader. Pomáhá při načítání souborů rt.jar, který nese všechny soubory třídy.

b) Rozšíření ClassLoader

Je to nadřazený classloader systému classloader a podřízený classloader Bootstrapu. Soubory jar uvnitř adresáře $ JAVA_HOME / jre / lib / ext lze extrahovat pomocí Extension ClassLoader.

C) System / Application ClassLoader

Je to podřízený Classloader rozšíření známý také jako Application classloader. Soubory třídy z cesty třídy mohou být extrahovány skrz ni. Cesta třídy, která je nastavena na aktuální adresář, lze ve výchozím nastavení změnit pomocí přepínače '-cp' nebo '-classpath'.

2. Třída (metoda)

Struktury předtříd, jako jsou data polí a metod, fond runtime konstant a kód metod jsou uloženy v oblasti Class (Method) Area. Je to paměť, která je vytvořena při spuštění JVM a je sdílena mezi všemi vlákny jako Heap.

3. Halda

Objekty jsou přiřazeny prostřednictvím této užitečné oblasti runtime dat. Je to paměťové místo pro ukládání objektů spolu s jeho proměnnými instance. Kdykoli je objekt vytvořen v Javě, jde do haldy - do oblasti paměti.

4. Stack

Spolu s ukládáním rámců obsahuje Java Stack proměnné a dílčí výsledky. Hraje také klíčovou roli v metodě, vyvolání a návratu. Každé jednotlivé vlákno se skládá z jeho soukromého zásobníku JVM vytvořeného současně s vláknem. Kdykoli se metoda eskaluje, vygeneruje se nový rámec a po dokončení vyvolání metody se rozbije.

5. Registr čítače programů (PC)

Registr PC obsahuje adresu instrukce JVM v době jejího provedení. Sledování instrukcí má hodnotu pro každou instrukci, která není pro nativní metody definována.

6. Zásobník nativní metody

Nativní postupy používané v aplikacích jsou součástí sady Native Method Stack. Tyto metody jsou psány v jiných jazycích než Java. Implementace JVM, asociované s každým vláknem, se nemohou spoléhat na konvenční zásobníky a nemohou načíst nativní metody. Abych byl přesný, je podobný zásobníku, ale používá se pro nativní metody.

7. Motor

Protože je klíčovým aspektem JVM, komunikuje se svými různými paměťovými oblastmi. To zahrnuje:

A. Popelář

To hraje zásadní roli v dynamickém systému správy paměti JVM. Paměť, která je obsazena a již se na ni nevztahuje žádný z dostupných objektů Java, je uvolňována prostřednictvím garbage collector.

b. Tlumočník

Provede instrukce po přečtení proudu bajtkódu.

C. Kompilátor Just-In-Time (JIT)

Kompilátor JIT umožňuje zvýšení výkonu a kompiluje části bajtkódu s podobnou funkčností současně. Pomáhá při snižování času potřebného k procesu kompilace.

8. Java Native Interface (JNI)

K aplikacím skriptovaným v jiných jazycích, např. C, C ++, Assembly atd., Lze připojit rozhraní prostřednictvím JNI. JNI framework používá Java k interakci s knihovnami OS nebo k odesílání výstupu do konzoly.

Jaké je použití JVM?

JVM má dvě primární funkce: umožnit Java programům běžet na jakémkoli zařízení nebo operačním systému (známý jako princip „Jednorázový zápis, spustit kdekoli“) a spravovat a optimalizovat programovou paměť.

Výhody a nevýhody

Programy Java jsou vhodně spouštěny pomocí JVM. Bytecode - prostřední jazyk se používá ke kompilaci programů Java a poté se provádí pomocí JVM. Každý jednotlivý program, který je kompilován do bajtkódu, může být prováděn jakoukoli platformou podporovanou JVM. To umožňuje softwaru Java efektivnější a kompatibilnější podle různých výpočetních platforem. JVM má několik významných výhod a nevýhod, které by měl každý vývojář před investováním do vývoje Java pečlivě zvážit.

1. Zabezpečení

Prostřednictvím bezpečnostních klíčů JVM mohou programátoři efektivně psát špičkové zabezpečené Java programy. Oprávňuje prostředky operačního systému k identifikaci škodlivého softwaru a podle toho také pomáhá v jeho prevenci.

2. Výkon

Programy Java, které běží na JVM, pravděpodobně nabízejí pomalejší provádění ve srovnání s programy, které jsou psány v C ++. Je to kvůli optimalizaci kódu, která se nadměrně spoléhá na různé funkce specifické pro systém. Bajtový kód Java nelze také optimalizovat pro konkrétní sadu hardwaru, protože je systémově neutrální.

3. Správnost

Správný je program, který funguje efektivně a naplňuje očekávání uživatele naplno. Vestavěné funkce JVM mu umožňují pracovat správně a bez chyb.

Proč bychom měli používat JVM?

Navzdory tomu, že má Java syntaktický kód, může JVM běžet na různých různých jazykových programech. Níže je uvedeno několik důvodů, proč je tak široce využíváno a proč je používat na různých platformách:

Využívá paměť haldy: Paměť haldy je základní komponentou, která se používá pro dynamické přidělování paměti pro definování tříd a inicializaci objektů a protože JVM podporuje paměť haldy, má široké přijetí.

Poskytování zabezpečení pro vzdálené umístění kódu: Framework JVM je navržen tak, aby bylo možné snadno provádět vzdálenou aplikaci. Tato teorie je dodržována při provádění apletu Java.

Závěr

Skutečnost, že JVM pracuje na více operačních systémech, mu dává palec nahoru v technologické oblasti. Při použití ve Windows, Linuxu a dalších OS je umožněno transformovat bytecode bez ohledu na hardware a OS, který má být spuštěn. Kromě toho je jeho schopnost nabídnout zabezpečení hostitelskému počítači zabezpečením jejich dat a programu dalším důvodem, proč byl JVM v minulosti tak úspěšný a v budoucnu i nadále dominuje.

Doporučené články

Toto byl průvodce programem What is JVM (Java Virtual Machine). Zde jsme diskutovali základní pojmy se seznamem Architektura a použití JVM. Další informace naleznete také v dalších navrhovaných článcích -

  1. Nejlepší Javascriptové rámce
  2. Je Python Object Oriented
  3. Aplikace C ++ v reálném světě
  4. Kariéra v ASP.NET
  5. JRE vs JVM | 8 hlavních rozdílů s (infografika)

Kategorie: