Różnica między JRE a JVM

Tutaj zrozumiemy, czym jest JVM (wirtualna maszyna Java), czym jest JRE (Java Runtime Environment). Ponadto zbadamy również główne różnice między JVM a JRE. W tym temacie poznamy JRE vs. JVM.

Co to jest JVM?

Java Virtual Machine (JVM) to maszyna wirtualna, która znajduje się na twoim komputerze i wykonuje kod bajtu Java. Wirtualna maszyna Java rozumie tylko kod bajtowy, dlatego istnieje kompilator javac, który konwertuje kod źródłowy (.java) na kod bajtowy (.class), który jest zrozumiały dla JVM. Chociaż JVM zainstalowany w różnych systemach operacyjnych jest inny, dane wyjściowe generowane przez JVM są spójne we wszystkich systemach operacyjnych.

Składniki JVM

Poniżej przedstawiono różne komponenty obecne w JVM:

1. ClassLoader: Główną funkcją modułu ładującego klasy jest odczytanie pliku .class i zapisanie kodu bajtowego w obszarze metody JVM.

2. Obszar metod: Obszar metod wirtualnej maszyny Java przechowuje wszystkie związane z klasami informacje o wszystkich klasach ładowanych przez moduł ładujący klasy.

3. Obszar sterty: Obszar sterty jest częścią JVM, w której znajdują się utworzone obiekty. JVM tworzy obiekt klasy dla każdego pliku .class ładowanego przez moduł ładujący klasy.

4. Stos: Ta część JVM przechowuje zmienne tymczasowe.

5. Rejestry PC: Rejestry PC prowadzą rejestr, która instrukcja została wykonana, a która jest następna do wykonania.

6. Natywny stos metod: Natywny stos metod zawiera informacje o natywnym kodzie. Jest napisany w innych językach programowania niż Java.

7. Silnik wykonawczy: Silnik wykonawczy jvm jest odpowiedzialny za wykonanie kodu bajtowego lub skompilowanego kodu. Silnik wykonawczy jvm zawiera:

  • Procesor wirtualny: procesor wirtualny jest odpowiedzialny za sekwencyjne wykonywanie kodów operacji.
  • Tłumacz: Tłumacz interpretuje kod bajtowy. Odpowiada za odczyt strumienia kodu bajtowego, interpretację instrukcji kodu bajtowego i wykonanie ich przez procesor wirtualny. Jednak wadą tłumacza jest to, że gdy jedna metoda jest wywoływana wiele razy, za każdym razem wymagana jest nowa interpretacja.
  • Kompilator Just-In-Time (JIT): służy zasadniczo do poprawy wydajności. Jest on używany w celu przezwyciężenia wad interpretera, gdy JVM znajduje powtarzający się kod, używa kompilatora JIT, który kompiluje kod bajtowy i zmienia go w kod macierzysty. Ten natywny kod jest wykorzystywany bezpośrednio w powtarzanych wywołaniach metod, co z kolei zapewnia znaczną poprawę wydajności.

Na podstawie wyżej wymienionych składników funkcje JVM można podsumować jako:

  • JVM ładuje kod.
  • JVM weryfikuje załadowany kod.
  • JVM wykonuje kod, jeśli jest poprawny.
  • JVM zapewnia środowisko wykonawcze.

Działanie JVM można wyjaśnić za pomocą poniższego przepływu:

Co to jest JRE?

Java Runtime Environment jest częścią pakietu programistycznego Java (JDK).

Java Runtime Environment (JRE) to pakiet instalacyjny zapewniający środowisko do uruchamiania kodu Java. Należy zauważyć, że środowisko JRE jest używane tylko przez użytkowników końcowych, którzy chcą uruchomić kod Java. JRE zawiera JVM, czyli JVM jest podzbiorem JRE. Środowisko wykonawcze Java obejmuje następujące elementy:

Technologie wdrażania.

  1. Zestawy interfejsów użytkownika, takie jak Abstract Window Toolkit (AWT), Swing, Java Naming and Directory Interface (JBDI), Java 2D, Print Service, Drag and Drop (DND) itp.
  2. Biblioteki Lang i util, takie jak lang i util, zarządzanie, zip, odbicie, JAR, Preference API, narzędzia do wyrażeń regularnych i narzędzia do wielowątkowości, rejestrowanie i inne.
  3. Biblioteki podstawowe, w tym dane wejściowe / wyjściowe (I / 0), matematyka, sieć, mechanizm nadpisywania Serializacja, parsery Java XML, Java Native Interface (JNI).
  4. Biblioteki integracyjne, na przykład język definicji interfejsu, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Bezpośrednie porównanie między JRE a JVM (infografiki)

Poniżej 8 najważniejszych różnic między JRE a JVM

Kluczowe różnice między JRE a JVM

Poniżej przedstawiono kluczowe różnice między JRE a JVM

  • Główną funkcją JRE jest zapewnienie środowiska wykonawczego do uruchamiania aplikacji Java, podczas gdy JVM konwertuje kod bajtowy na kod maszynowy w celu wykonania i zapewnia niezależność platformy.
  • JRE działa jako kontener, a Jvm działa jako treść.
  • JRE składa się z bibliotek JVM + do uruchamiania aplikacji, podczas gdy jvm zawiera tylko środowisko wykonawcze do wykonywania kodu bajtowego Java.

Tabela porównawcza między JRE a JVM

Omówmy najlepsze porównanie między JRE a JVM

Podstawa porównaniaJREJVM
Pełna formaPełna forma środowiska JRE to środowisko Java Runtime Environment.Pełna forma JVM to Java Virtual Machine.
DefinicjaJava Runtime Environment jest częścią Java Development Kit (JDK), która składa się z JVM, klas podstawowych i bibliotek pomocniczych. Jego główną funkcją jest zapewnienie środowiska wykonawczego do uruchamiania kodu Java.Java Virtual Machine (JVM) jest jak wirtualny komputer, który wykonuje zestaw wstępnie skompilowanych instrukcji. Gdy kompilator Java kompiluje kod źródłowy, generuje zestaw instrukcji o nazwie bytecode (pliki .class). Wirtualna maszyna Java interpretuje instrukcje kodu bajtowego i konwertuje je na kod maszynowy w celu wykonania.
Pojemnik i zawartośćJRE działa jak kontener zawierający JVM, biblioteki i inne pliki. Ponadto środowisko JRE nie zawiera narzędzi programistycznych, takich jak kompilator i debugger.JVM jest częścią JRE. Można to uznać za podzbiór środowiska JRE.
Cel rozwojuNie jest wykorzystywany do celów programistycznych.Służy do celów programistycznych.
Działający celSłuży do uruchamiania kodu Java.Nie jest używany do uruchamiania kodu Java.
Złożony zJRE składa się z bibliotek JVM + do uruchamiania aplikacji.Zawiera tylko środowisko wykonawcze do wykonywania kodu bajtowego Java.
PodzbiórJest to podzbiór JDK.Jest to podzbiór JRE.
PrzyboryZawiera biblioteki klas wymagane do uruchamiania programów.Nie zawiera żadnych narzędzi.

Wniosek - JRE vs JVM

Z artykułu jasno rozumiemy zarówno środowisko Java Runtime Environment (JRE), jak i wirtualną maszynę Java (JVM), które są najważniejszymi częściami Java Development Kit (JDK).

Polecane artykuły

To jest przewodnik po JRE vs JVM. Omówiliśmy kluczowe różnice między JRE a JVM za pomocą infografiki i tabeli porównawczej. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

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