Architektura JVM | Wyjaśnione

Architektura JVM | Wyjaśnione
JVM to maszyna abstrakcyjna używana do wykonywania programów Java. W Javie kod źródłowy jest konwertowany na kod bajtowy, który po dalszym konwertowaniu na kod maszyny jest przesyłany do pamięci przez maszynę wirtualną Java. Krótko mówiąc, JVM zapewnia środowisko wykonawcze do wykonywania bajtowego kodu Java, co czyni go komponentem środowiska wykonawczego Java (JRE). Ogólnie JVM jest odpowiedzialny za ładowanie, łączenie i inicjalizację.

Architektura JVM

Wewnętrzna architektura wirtualnej maszyny Java składa się z trzech głównych części.

1. Klasę ładującą

2. Obszar pamięci

3. Silnik wykonania

Oto wizualna reprezentacja architektury JVM.

Poniżej wszystkie części maszyny wirtualnej Java są szczegółowo wyjaśnione.

Klasę ładującą

Mloader w JVM odnosi się do podsystemu odpowiedzialnego za ładowanie plików. Ładuje program Java za każdym razem, gdy prowadzimy program Java. Java zapewnia następujące loadlerzy klas.

A. Bootstrap Classloader

Superklasa rozszerzenia klas ładowania, która jest odpowiedzialna za załadowanie RT.plik jar

B. Rozszerzenie klasę

Dziecko Bootstrap Classloader i nadrzędne systemy/aplikacja klasa ładowa, rozszerzenie klas ładują pliki jar zapisane w katalogu.

C. System/Application Classloader

Ta klasowa ładowarka ładuje pliki klas z ścieżki klasy i jest dzieckiem rozszerzenia klas ładowania.

Obszar pamięci

Obszar pamięci JVM składa się z następujących części.

A. Obszar metody

Celem obszaru metody jest zapisanie struktury klas takich jak dane metod lub dane terenowe, pula środowiska wykonawczego i kod metod.

B. Sterta

Sterta to obszar danych wykonawczych, w którym przydzielane są obiekty.

C. Półki na książki

Stack jest odpowiedzialny za przechowywanie ramek, zmienne lokalne i częściowe wyniki. Odgrywa ważną rolę w przywołaniu metody i zwrotu metody. Za każdym razem, gdy tworzony jest wątek, prywatny stos JVM dla tego konkretnego wątku jest tworzona jednocześnie i tworzona jest nowa ramka za każdym razem, gdy wywoływana jest metoda, a gdy tylko inwokacja zakończy się zniszczenie ramy.

D. Rejestry komputera

Jest odpowiedzialny za trzymanie adresów podczas wykonywania instrukcji JVM.

mi. Stosy metody natywnej

Jest odpowiedzialny za przechowywanie wszystkich natywnych metod wymaganych w aplikacji.

Silnik wykonania

Silnik wykonania składa się z następujących.

A. Interpretator

Wykonuje instrukcje po przeczytaniu strumienia bajtowego.

B. Kompilator Just-In-Time (JIT)

JIT zwiększa wydajność poprzez kompilację części kodu bajtowego o podobnych funkcjonalnościach na tym samym, odtąd skracając ogólny czas kompilacji.

C.Śmieciarz

Służy do zbierania obiektów, do których nie są odwoływane i usuwają je, aby zwolnić pamięć.

Interfejs metody natywnej

Pomaga w komunikacji z aplikacjami napisanymi w różnych językach, takich jak C, C ++ itp. Jest również odpowiedzialny za pomoc w kodzie Java w pracy w JVM w wywoływaniu bibliotek i natywnych aplikacji.

Biblioteki metod

Składa się z natywnych bibliotek (C, C ++), które są niezbędne do silnika wykonania.

Wniosek

Java Virtual Machine (JVM) to abstrakcyjna maszyna zbudowana do realizacji programów Java. Architektura JVM obejmuje trzy główne części, które są klasą, obszar pamięci i silnik wykonania. Obszar pamięci i silnik wykonania składają się dodatkowo z niektórych części, które mają różne funkcje. Ten samouczek wyjaśnia architekturę maszyny wirtualnej Java (JVM), podkreślając funkcje swoich różnych komponentów.