Co byste měli vědět o virtuálním stroji Java?



Tento blog se bude podrobně věnovat konceptu java virtuálního stroje s komponentami jeho architektury a klíčovými rozdíly mezi JVM, JRE a JDK

language je v IT průmyslu obří už velmi dlouhou dobu. Má několik špičkových konceptů, díky nimž je lepší než zbytek programovacího jazyka. Jedním z takových konceptů je virtuální stroj Java, v tomto článku se dozvíme o různých aspektech virtuální stroj podrobně. Níže jsou diskutována témata v tomto blogu:

sort () v c ++

Co je Java Virtual Machine?

Virtuální stroj Java je abstraktní stroj nezávislý na platformě, který poskytuje běhové prostředí, ve kterém se provádí bajtový kód Java.





Jedná se o součást běhového prostředí Java, která převádí bajtový kód Java do strojově čitelného jazyka. Hlavní které máme v programu Java, se vlastně nazývá virtuální stroj Java.

jvm - java virtuální stroj - edureka

Proč potřebujeme virtuální stroj Java?

Virtuální stroj Java potřebujeme pro úkoly, které provádí a které jsou nesmírně nutné pro jakýkoli vývoj zahrnující Javu. Následuje několik úkolů, které virtuální stroj Java provádí.



  • Načte kód
  • Ověření kódu
  • Provedení kódu
  • Poskytuje běhové prostředí pro aplikace
  • Paměťová oblast
  • Registrační sada
  • Poskytuje hromadu uvolnění paměti
  • Hlášení závažných chyb
  • Poskytuje a třída formát souboru

Se všemi těmito operacemi je virtuální stroj Java nedílnou součástí vývoje Java. Zkusme pochopit, jak to funguje, pomocí architektury virtuálních strojů Java.

Architektura Java Virtual Machine

Architektura virtuálních strojů Java je velmi jednoduchá, má paměťovou oblast, zavaděč tříd a spouštěcí modul mezi ostatními komponentami. pojďme se podrobně bavit o každém z nich.

ClassLoader

Jedná se o subsystém, který se používá k načtení souborů tříd. Kdykoli spustíme program v Javě, nejprve jej načte ClassLoader. hlavní funkce zahrnuje inicializaci, propojení a načítání. Toto jsou integrované zavaděče tříd v Javě.



    • Bootstrap ClassLoader - Jedná se o super třídu Extension ClassLoader, která načte soubor rt.jar.

    • Rozšíření ClassLoader - Načte soubory jar umístěné v adresáři.

    • Systém / aplikace ClassLoader - Načte třídní soubory z cesty ke třídě.

    • Načítání operace - Nejprve classLoader načte soubory .class a vygeneruje odpovídající data v binárním formátu, která se uloží v oblasti metody.

    • Provoz propojení - Po načtení se připraví, ověří a provede rozlišení. JVM přiděluje paměť proměnným třídy a inicializuje paměť na výchozí hodnoty. Zajišťuje správnost souboru .class a když se ověření nezdaří, dostaneme chybu výjimky za běhu.

    • Inicializace - Všechny statické proměnné jsou v této fázi přiřazeny k hodnotám definovaným v bloku kódu.

Paměť JVM

  • Oblast metody - Ukládá struktury pro každou třídu, jako je kód, data pole, fond konstant runtime, data metod atd.

  • Halda - Objekty jsou přidělovány za běhu v haldě.

  • Stohy jazyků JVM - Ukládá místní proměnné a výsledky. Hraje důležitou roli při vyvolání a návratu výsledků. Kdykoli je vyvolána metoda, vytvoří se rámec a zničí se, jakmile vyvolání skončí nebo dokončí.

  • PC registry - Má adresu nebo umístění prováděné JVMinstruction.

  • Zásobníky nativní metody - Všechny nativní metody použité v aplikacích jsou přítomny v zásobnících nativních metod.

  • Execution Engine - Prováděcí stroj obsahuje virtuální procesor, tlumočníka a JIT překladač.

  • Nativní metoda Rozhraní - Je to který poskytuje.

Nyní, když jsme pochopili architekturu JVM, pojďme se podívat na proces provádění a kompilaci kódu.

Proces provádění

Následující kroky probíhají při provádění a kompilaci kódu Java.

  • Hlavní metoda je uložena v jednom souboru a další metody jsou uloženy v různých souborech.
  • Po kompilaci poskytne odpovídající soubory .class, které budou mít bajtový kód bez jakéhokoli propojení, na rozdíl od C.
  • Během provádění jsou soubory třídy ověřovány na případná porušení pomocí Classloaderu.
  • Poté se bytecode převede na odpovídající nativní strojový kód. To je také důvod, proč je Java poměrně pomalejší.

Nyní, když víme, jak provedení funguje, pojďme se podívat na rozdíl mezi JDK, JRE a JVM.

Jak mohu sestavit program Java

Rozdíl mezi JDK, JRE a JVM

Následuje několik důležitých rozdílů mezi nimi JDK , JVM a JRE.

  1. JDK znamená Java development kit a JRE znamená Java runtime environment.
  2. JDK je pro vývoj, zatímco JRE je pro běhové prostředí.
  3. JVM je nezbytnou součástí JDK a JRE pro spuštění libovolného programu Java.
  4. JVM je nedílnou součástí programování v Javě a poskytuje nezávislost na platformě.

Tím se dostáváme na konec tohoto článku, kde jsme se podrobně dozvěděli o virtuálním stroji Java. Doufám, že máte jasno se vším, co bylo s vámi v tomto tutoriálu sdíleno.

Pokud shledáte tento článek jako „Java Virtual Machine“ relevantní, podívejte se na Edureka , důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě.

Jsme tu, abychom vám pomohli s každým krokem na vaší cestě a vytvořili osnovy určené pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými rámci Java, jako je Hibernate & Spring.

Pokud narazíte na jakékoli dotazy, neváhejte se zeptat na všechny své dotazy v sekci komentářů „Java Virtual Machine“ a náš tým vám rád odpoví.