Diferența dintre JRE și JVM

Aici, vom înțelege ce este JVM (mașină virtuală Java), ce este JRE (Java Runtime Environment). Mai mult, vom studia, de asemenea, diferențele majore dintre JVM și JRE. În acest subiect, vom învăța despre JRE și JVM.

Ce este JVM?

Java Virtual Machine (JVM) este o mașină virtuală care se află pe computerul dvs. și execută codul de byte java. Mașina virtuală Java înțelege doar codul de byte, de aceea există un compilator javac care transformă codul sursă (.java) în cod de byte (.class), care este înțeles de JVM. Deși JVM instalat în diferite sisteme de operare este diferit, producția produsă de JVM este consistentă în toate sistemele de operare.

Componente ale JVM

Următoarele sunt componente diferite prezente în JVM:

1. ClassLoader: Funcția principală a încărcătorului de clase este de a citi fișierul .class și de a salva bytecode în zona metodei JVM.

2. Zonă metodă: Zona de metodă a mașinii virtuale Java stochează toate informațiile legate de clasă a tuturor claselor care sunt încărcate de încărcătorul de clase.

3. Heap Area: Heap Area este o parte a JVM unde se află obiecte create. JVM creează un obiect de clasă pentru fiecare fișier .class încărcat de încărcătorul de clase.

4. Stack: Această parte a JVM stochează variabile temporare.

5. Registre PC: Registrele PC păstrează o evidență a cărei instrucțiuni a fost executată și care este următorul în linie pentru a fi executat.

6. Stivă metodă nativă : stiva metodei native conține informații despre codul nativ. Este scris în alte limbaje de programare decât Java.

7. Motor de execuție: motorul de execuție al jvm este responsabil pentru execuția bytecode sau a codului compilat. Motorul de execuție al jvm conține:

  • Procesor virtual: Procesorul virtual este responsabil de executarea secvențială a codurilor de operare.
  • Interpret: Interpretul interpretează bytecode. Este responsabil pentru citirea fluxului de coduri de byte, interpretarea instrucțiunilor bytecode și executarea acestora prin procesorul virtual. Dar dezavantajul interpretului este că atunci când o metodă este numită de mai multe ori, de fiecare dată există o cerință a unei noi interpretări.
  • Compilator Just-In-Time (JIT): Acesta este utilizat practic pentru îmbunătățirea performanței. Acesta este utilizat pentru a depăși dezavantajul interpretului atunci când JVM găsește cod repetat, folosește compilatorul JIT care compilează bytecode și îl schimbă în cod nativ. Acest cod nativ este folosit direct în apelurile repetate ale metodei, care la rândul lor oferă o îmbunătățire drastică a performanței.

Din detaliile de mai sus ale componentelor enumerate, funcțiile JVM pot fi rezumate ca:

  • Cod de încărcare JVM.
  • JVM verifică codul încărcat.
  • JVM execută cod dacă este valabil.
  • JVM oferă un mediu de rulare.

Funcționarea JVM poate fi explicată prin fluxul de mai jos:

Ce este JRE?

Java Runtime Environment este o parte a kitului de dezvoltare Java (JDK).

Java Runtime Environment (JRE) este un pachet de instalare care oferă un mediu pentru a rula codul Java. De menționat că JRE este utilizat doar de utilizatorii finali cei care doresc să ruleze codul Java. JRE conține JVM în el, care este JVM este un subset de JRE. Mediul Runtime Java include următoarele:

Tehnologii de implementare

  1. Seturi de instrumente pentru interfața utilizatorului, cum ar fi Abstract Window Toolkit (AWT), Swing, Naming Java și Directory Interface (JBDI), Java 2D, Service Print, Drag and Drop (DND) etc.
  2. Bibliotecile Lang și Ut, precum lang și Ut, management, zip, reflecție, JAR, API de preferințe, Concurgență expresie regulată și utilități multithreading, Logging și altele.
  3. Biblioteci de bază, inclusiv intrare-ieșire (I / 0), matematică, rețea, mecanism de înlocuire Serializare, analizatori Java XML, interfață nativă Java (JNI).
  4. Biblioteci de integrare, de exemplu, Interfața de definire a limbii, Java DataBase Connectivity (JDBC), Invocarea metodei la distanță (RMI), Naming Java și Directory Interface (JNDI).
  5. Mașină virtuală Java (JVM).

Comparație față în față între JRE și JVM (Infografie)

Mai jos sunt cele mai bune 8 diferențe între JRE și JVM

Diferențele cheie între JRE și JVM

Următoarele sunt diferențele cheie între JRE și JVM

  • Funcția principală a JRE este de a oferi un mediu de rulare pentru a rula aplicații java, în timp ce JVM convertește codul de byte în cod de mașină pentru execuție și asigură independența platformei.
  • JRE acționează ca container și jvm acționează ca conținut.
  • JRE este compus din bibliotecile JVM + pentru a rula aplicații, în timp ce jvm conține doar mediul de rulare pentru executarea bytecode Java.

Tabelul de comparație între JRE și JVM

Să discutăm comparația de top dintre JRE și JVM

Bazele comparațieiJREJVM
Formular completForma completă de JRE este Java Runtime Environment.Forma completă a JVM este Java Virtual Machine.
DefinițieJava Runtime Environment este o parte a Java Development Kit (JDK) care cuprinde un JVM, clase de bază și biblioteci de suport. Funcția principală este de a oferi mediu de rulare pentru a rula codul Java.Java Virtual Machine (JVM) este ca un computer virtual care execută un set de declarații precompilate. Când un compilator Java compilează codul sursă, generează un set de instrucțiuni numite bytecode (fișiere .class). Mașina virtuală Java interpretează instrucțiunile bytecode și le transformă în cod de mașină pentru execuția sa.
Container și conținutJRE acționează ca un container care conține JVM, biblioteci și alte fișiere. Mai mult, JRE nu conține instrumente de dezvoltare precum compilatorul și depanatorul.JVM este o parte a JRE. Poate fi considerat ca un subset al JRE.
Scopul dezvoltăriiNu este utilizat în scopuri de dezvoltare.Este utilizat în scopuri de dezvoltare.
Scopul funcționăriiEste utilizat pentru rularea codului java.Nu este utilizat pentru rularea codului java.
Compus dinJRE este compus din bibliotecile JVM + pentru a rula aplicații.Conține doar un mediu de rulare pentru executarea Java bytecode.
Subset deEste un subset de JDK.Este un subset de JRE.
UnelteConține biblioteci de clasă care sunt necesare pentru a rula programe.Nu conține instrumente.

Concluzie - JRE vs JVM

Din articol, avem o înțelegere clară atât a Java Runtime Environment (JRE) cât și a Java Virtual Machine (JVM), care sunt cele mai importante părți ale Java Development Kit (JDK).

Articole recomandate

Acesta este un ghid pentru JRE vs JVM. Aici am discutat despre diferențele cheie JRE și JVM cu infografie și tabel de comparație. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Java vs Nodul JS
  2. Groovy vs Java
  3. Java vs C #
  4. Java vs JavaScript