Čo by ste mali vedieť o virtuálnom stroji Java?



Tento blog sa bude podrobne zaoberať konceptom java virtuálneho stroja s komponentmi jeho architektúry a kľúčovými rozdielmi medzi JVM, JRE a JDK.

jazyk je v IT priemysle veľmi dlho. Má niekoľko špičkových konceptov, vďaka ktorým je lepší ako zvyšok programovacieho jazyka. Jedným z takýchto konceptov je virtuálny stroj Java, v tomto článku sa dozvieme o rôznych aspektoch virtuálny stroj podrobne. Nasledujú témy diskutované v tomto blogu:

trieda adaptéra v jave s príkladom

Čo je to Java Virtual Machine?

Virtuálny stroj Java je abstraktný stroj nezávislý na platforme, ktorý poskytuje behové prostredie, v ktorom sa vykonáva bajtový kód Java.





Je súčasťou runtime prostredia Java, ktorá prevádza bajtkód Java do strojovo čitateľného jazyka. Hlavný ktoré máme v programe Java, sa v skutočnosti volá virtuálny stroj Java.

jvm - java virtuálny stroj - edureka

Prečo potrebujeme virtuálny počítač Java?

Virtuálny stroj Java potrebujeme na úlohy, ktoré vykonáva, a ktoré sú mimoriadne potrebné pre akýkoľvek vývoj zahŕňajúci Javu. Nasleduje niekoľko úloh, ktoré robí virtuálny stroj Java.



  • Načíta kód
  • Overenie kódu
  • Vykonanie kódu
  • Poskytuje aplikačné prostredie za behu
  • Pamäťová oblasť
  • Nastaviť registráciu
  • Poskytuje kopu odpadu
  • Hlásenie závažných chýb
  • Poskytuje a trieda formát súboru

Pri všetkých týchto operáciách je virtuálny stroj Java neoddeliteľnou súčasťou vývoja Java. Pokúsme sa pochopiť, ako to funguje, pomocou architektúry virtuálneho stroja Java.

Architektúra Java Virtual Machine

Architektúra virtuálneho stroja Java je dosť jednoduchá, okrem iných komponentov má aj pamäťovú oblasť, triedny nakladač a exekučný stroj. poďme si každý z nich podrobne rozobrať.

ClassLoader

Je to subsystém, ktorý sa používa na načítanie súborov triedy. Kedykoľvek spustíme program v jave, najskôr ho načíta ClassLoader. hlavná funkcia zahŕňa inicializáciu, prepojenie a načítanie. Nasledujú vstavané zavádzače tried v Jave.



    • Bootstrap ClassLoader - je to super trieda Extension ClassLoader, ktorá načíta súbor rt.jar.

    • Predĺženie ClassLoader - Načíta súbory jar umiestnené v adresári.

    • Systém / Aplikácia ClassLoader - Načíta súbory triedy z cesty triedy.

    • Operácia načítania - Najskôr classLoader načíta súbory .class a vygeneruje zodpovedajúce údaje v binárnom formáte, ktoré sú uložené v oblasti metódy.

    • Prevádzka prepojenia - Po načítaní sa pripraví, overí a urobí rozlíšenie. JVM vyhradzuje pamäť pre premenné triedy a inicializuje pamäť na predvolené hodnoty. Zaisťuje správnosť súboru .class a keď zlyhá overenie, zobrazí sa chyba runtime výnimky.

    • Inicializácia - Všetky statické premenné sú v tejto fáze priradené k hodnotám definovaným v bloku kódu.

Pamäť JVM

  • Oblasť metódy - Ukladá štruktúry pre každú triedu, ako je kód, údaje z polí, fond konštantných za behu, údaje o metódach atď.

  • Halda - Objekty sú alokované za behu v halde.

  • Stohy jazykov JVM - Ukladá miestne premenné a výsledky. Hrá dôležitú úlohu pri vyvolaní a vrátení výsledkov. Kedykoľvek je vyvolaná metóda, vytvorí sa rámec a zničí sa, akonáhle sa vyvolanie skončí alebo dokončí.

  • Registre PC - Má adresu alebo umiestnenie JVMinstruction, ktorá sa vykonáva.

  • Zásobníky natívnej metódy - Všetky natívne metódy použité v aplikáciách sú prítomné v zásobníkoch natívnych metód.

  • Vykonávací modul - Spúšťací modul obsahuje virtuálny procesor, tlmočník a JIT zostavovateľ.

  • Natívna metóda Rozhranie - Je to ktorý poskytuje.

Teraz, keď sme pochopili architektúru JVM, poďme sa pozrieť na proces vykonávania a kompiláciu kódu.

Proces vykonania

Nasledujúce kroky prebiehajú pri vykonávaní a kompilácii kódu Java.

  • Hlavná metóda je uložená v jednom súbore a ďalšie metódy sú uložené v rôznych súboroch.
  • Po kompilácii poskytne zodpovedajúce súbory .class, ktoré budú mať bajtový kód bez akéhokoľvek prepojenia, na rozdiel od C.
  • Počas vykonávania sa súbory triedy overujú pomocou Classloaderu na prípadné porušenia.
  • Potom sa bytecode prevedie na zodpovedajúci natívny strojový kód. To je tiež dôvod, prečo je Java porovnateľne pomalšia.

Teraz, keď vieme, ako funguje vykonávanie, sa pozrime na rozdiel medzi JDK, JRE a JVM.

ako používať split metódu v

Rozdiel medzi JDK, JRE a JVM

Nasleduje niekoľko dôležitých rozdielov medzi JDK , JVM a JRE.

  1. JDK znamená Java development kit a JRE znamená Java runtime environment.
  2. JDK je určené na vývoj, zatiaľ čo JRE je určené na prevádzkové prostredie.
  3. JVM je nevyhnutnou súčasťou JDK a JRE na spustenie ľubovoľného programu Java.
  4. JVM je neoddeliteľnou súčasťou programovania Java a poskytuje nezávislosť na platforme.

Týmto sa dostávame na koniec tohto článku, kde sme sa podrobne dozvedeli o virtuálnom stroji Java. Dúfam, že máte prehľad o všetkom, čo bolo s vami zdieľané v tomto tutoriále.

Ak považujete tento článok o „Java Virtual Machine“ za relevantný, pozrite si Edureka , dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete.

Sme tu, aby sme vám pomohli na každom kroku na vašej ceste a prišli s učebným plánom, ktorý je určený pre študentov a profesionálov, ktorí chcú byť vývojárom Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v jazyku Java a naučil vás základné aj pokročilé koncepty jazyka Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Ak narazíte na akékoľvek otázky, neváhajte sa ich opýtať v sekcii komentárov „Java Virtual Machine“ a náš tím na ne rád odpovie.