Ce ar trebui să știți despre mașina virtuală Java?



Acest blog va acoperi în detaliu conceptul de mașină virtuală java, cu componentele arhitecturii sale și diferențele cheie dintre JVM, JRE și JDK

limba a fost un gigant în industria IT de foarte mult timp. Are câteva concepte de top care îl fac mai bun decât restul limbajului de programare. Un astfel de concept este mașina virtuală Java, în acest articol vom învăța despre diferitele aspecte ale mașină virtuală în detaliu. Următoarele sunt subiectele discutate în acest blog:

Ce este mașina virtuală Java?

Mașina virtuală Java este o mașină abstractă independentă de platformă care oferă un mediu de execuție în care este executat codul de octeți Java.





Este o parte a mediului de execuție Java care convertește codul secundar Java în limbaj care poate fi citit de mașină. Principalul pe care îl avem într-un program Java este de fapt apelat de mașina virtuală Java.

jvm - mașină virtuală java - edureka

De ce avem nevoie de mașină virtuală Java?

Avem nevoie de mașina virtuală Java pentru sarcinile pe care le îndeplinește, care sunt extrem de necesare pentru orice dezvoltare care implică Java. Următoarele sunt câteva sarcini pe care le face mașina virtuală Java.



  • Încarcă codul
  • Verificarea codului
  • Executarea codului
  • Acesta oferă mediul de execuție pentru aplicații
  • Zona de memorie
  • Set de înregistrări
  • Oferă o grămadă de colectare a gunoiului
  • Raportarea erorilor fatale
  • Oferă un clasă tipul fisierului

Cu toate aceste operațiuni, mașina virtuală Java face parte integrantă din dezvoltarea Java. Să încercăm să înțelegem cum funcționează cu ajutorul arhitecturii mașinii virtuale Java.

Arhitectura mașinilor virtuale Java

Arhitectura mașinii virtuale Java este destul de simplă, are o zonă de memorie, un încărcător de clase și un motor de execuție printre alte componente. să discutăm fiecare dintre ele în detaliu.

ClassLoader

Este un subsistem care este folosit pentru a încărca fișiere de clasă. Ori de câte ori rulăm un program în java, acesta este încărcat mai întâi de ClassLoader. funcția majoră include inițializarea, conectarea și încărcarea. Următoarele sunt clasificatoarele încorporate în Java.



    • Bootstrap ClassLoader - Este super-clasa Extension ClassLoader care încarcă fișierul rt.jar.

    • Extensie ClassLoader - Încarcă fișierele jar situate în director.

      constrângeri în sql cu exemplu
    • Sistem / aplicație ClassLoader - Încarcă fișierele de clasă din classpath.

    • Operațiune de încărcare - Mai întâi classLoader încarcă fișierele .class și generează datele corespunzătoare în formatul binar care este salvat în zona metodei.

    • Operațiunea de conectare - După încărcare, pregătește, verifică și rezolvă. JVM alocă memoria pentru variabilele de clasă și inițializează memoria la valorile implicite. Acesta asigură corectitudinea fișierului .class și atunci când verificarea eșuează, vom primi eroarea de excepție a runtime-ului.

    • Inițializare - Toate variabilele statice sunt atribuite cu valorile lor definite în blocul de cod în această fază.

Memorie JVM

  • Zona metodei - Stochează structurile pentru fiecare clasă, cum ar fi codul, datele câmpului, pool-ul constant de rulare, datele metodei etc.

    ce se adaugă în java
  • Heap - Obiectele sunt alocate la runtime în heap.

  • JVM Language Stacks - Stochează variabile locale și rezultate. Acesta joacă un rol important în invocarea și returnarea rezultatelor. Ori de câte ori este invocată o metodă, se creează un cadru și este distrus de îndată ce invocarea se termină sau se finalizează.

  • Registre PC - Are adresa sau locația instrucțiunii JVM care se execută.

  • Stive de metode native - Toate metodele native utilizate în aplicații sunt prezente în stivele de metode native.

  • Motor de execuție - Un motor de execuție conține un procesor virtual, un interpret și un JIT compilator.

  • Metoda nativă Interfață - Este un care prevede.

Acum că am înțeles arhitectura JVM, să aruncăm o privire asupra procesului de execuție și a compilării codului.

Procesul de executare

Următorii pași au loc în timpul executării și compilării unui cod Java.

  • Metoda principală este stocată într-un singur fișier, iar alte metode sunt stocate în fișiere diferite.
  • După compilare, acesta va furniza fișierele .class corespunzătoare care vor avea codul de octeți fără nicio legătură, spre deosebire de C.
  • În timpul execuției, fișierele de clasă sunt verificate pentru orice încălcare folosind Classloader.
  • După aceasta, bytecode-ul este convertit în codul de mașină nativ corespunzător. Acesta este și motivul pentru care Java este relativ mai lent.

Acum, că știm cum funcționează execuția, să aruncăm o privire asupra diferenței dintre JDK, JRE și JVM.

Diferența dintre JDK, JRE și JVM

Următoarele sunt câteva diferențe importante între JDK , JVM și JRE.

  1. JDK înseamnă kit de dezvoltare Java, iar JRE înseamnă mediu de rulare Java.
  2. JDK este pentru dezvoltare, în timp ce JRE este pentru mediul de execuție.
  3. JVM este o parte esențială a JDK și JRE pentru a rula orice program Java.
  4. JVM este o parte integrantă a programării Java și asigură independența platformei.

Acest lucru ne aduce la sfârșitul acestui articol, unde am aflat în detaliu despre mașina virtuală Java. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Mașina virtuală Java”, consultați Edureka , o companie de învățare online de încredere, cu o rețea de peste 250.000 de cursanți mulțumiți răspândiți pe tot globul.

ce este supraîncărcarea funcției în c ++

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring

Dacă întâmpinați întrebări, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Mașina virtuală Java”, iar echipa noastră va fi bucuroasă să vă răspundă.