Architektura Java łączy w sobie proces kompilacji i interpretacji. Wyjaśnia różne procesy zachodzące podczas formułowania . Zanim zacznę temat, przedstawię program tego artykułu.
Poniższe wskazówki będą naszymi tematami do dyskusji:
- Co to jest architektura Java?
- Komponenty Java
- W jaki sposób jest niezależna od platformy Java?
- JIT w Javie
Zacznijmy od zrozumienia, czym dokładnie jest architektura Java?
Co to jest architektura Java?
Tutaj wyjaśnię ci architekturę Java w prostych krokach.
- W Javie istnieje proces kompilacji i interpretacji.
- Kod napisany w , jest konwertowana na kody bajtowe, co jest wykonywane przez kompilator Java.
- Kody bajtów są następnie konwertowane na kod maszynowy przez JVM.
- Kod maszynowy jest wykonywany bezpośrednio przez maszynę.
Ten diagram ilustruje wewnętrzne działanie kodu Java, a dokładniej Architektury Java!
Przyjrzyjmy się teraz nieco głębiej architekturze Java i porozmawiajmy o różnych .
Komponenty architektury Java
Istnieją trzy główne komponenty języka Java: JVM, JRE i JDK .
Wirtualna maszyna języka Java, środowisko wykonawcze języka Java i zestaw programistyczny Java.
Pozwólcie, że omówię każdy z nich jeden po drugim:
Maszyna wirtualna Java:
Słyszałeś kiedyś o WORA? (Napisz raz, biegnij gdziekolwiek). Cóż, aplikacje Java nazywane są WORA ze względu na ich zdolność do uruchamiania kodu na dowolnej platformie. Dzieje się tak tylko dzięki JVM. JVM to komponent platformy Java, który zapewnia środowisko do wykonywania programów Java. JVM interpretuje kod bajtowy na kod maszynowy, który jest wykonywany na maszynie, na której działa program Java.
Krótko mówiąc, JVM wykonuje następujące funkcje:
- Ładuje kod
- Weryfikuje kod
- Wykonuje kod
- Zapewnia środowisko wykonawcze
Teraz pokażę wam architekturę JVM. Tutaj idzie!
Wyjaśnienie:
Klasa ładująca : Moduł ładujący klasy jest podsystemem JVM. Służy do ładowania plików klas. Za każdym razem, gdy uruchamiamy program java, program ładujący klasy ładuje go jako pierwszy.
Obszar metod klasowych : Jest to jeden z obszarów danych w JVM, w którym będą przechowywane dane klas. W tym obszarze przechowywane są zmienne statyczne, bloki statyczne, metody statyczne, metody instancji.
Sterta : Sterta jest tworzona podczas uruchamiania maszyny JVM. Podczas działania aplikacji może się zwiększać lub zmniejszać.
Stos : Stos JVM jest nazywany stosem wątków. Jest to obszar danych w pamięci maszyny JVM, który jest tworzony dla pojedynczego wątku wykonania. Stos JVM wątku jest używany przez wątek do przechowywania różnych elementów, tj. Zmiennych lokalnych, częściowych wyników i danych do wywołania metody i wyników.
Natywny stos : Obejmuje wszystkie natywne metody używane w aplikacji.
Silnik wykonywania:
- Kompilator JIT
- Śmieciarz
Kompilator JIT: Plik Kompilator Just-In-Time (JIT) jest częścią środowiska uruchomieniowego. Pomaga w poprawie wydajności aplikacji Java poprzez kompilowanie kodów bajtowych do kodu maszynowego w czasie wykonywania. Kompilator JIT jest domyślnie włączony. Gdy metoda jest kompilowana, maszyna JVM bezpośrednio wywołuje skompilowany kod tej metody. Kompilator JIT kompiluje kod bajtowy tej metody do kodu maszynowego, kompilując go „dokładnie na czas” do uruchomienia.
Śmieciarz: Jak nazwa to wyjaśnia Śmieciarz środki do zebrania niewykorzystanego materiału. Cóż, w JVM ta praca jest wykonywana przez zbieranie śmieci. Śledzi każdy obiekt dostępny w przestrzeni sterty maszyny JVM i usuwa niechciane.
Garbage collector działa w dwóch prostych krokach znanych jako Mark and Sweep:
- Znak - jest to miejsce, w którym odśmiecacz identyfikuje, które fragmenty pamięci są używane, a które nie
- Sweep - usuwa obiekty zidentyfikowane podczas fazy „zaznaczania”.
Środowisko wykonawcze Java:
Oprogramowanie JRE tworzy środowisko wykonawcze, w którym można uruchamiać programy Java. Środowisko JRE to system na dysku, który pobiera kod Java, łączy go z potrzebnymi bibliotekami i uruchamia maszynę JVM w celu wykonania. Środowisko JRE zawiera biblioteki i oprogramowanie potrzebne do działania programów Java. JRE jest częścią JDK (o czym będziemy się później uczyć), ale można je pobrać oddzielnie.
Zestaw narzędzi programistycznych Java:
Java Development Kit (JDK) to środowisko programistyczne używane do tworzenia aplikacji i apletów Java. Zawiera JRE i kilka narzędzi programistycznych, interpreter / ładowacz (java), kompilator (javac), archiwizator (jar), generator dokumentacji (javadoc) wraz z innym narzędziem.
Niebieski obszar pokazany na schemacie to JDK. Pozwólcie, że przedstawię wam wszystkim narzędzia programistyczne.
Jawa : jest to program uruchamiający dla wszystkich aplikacji Java.
javac : kompilator języków programowania java.
javadoc : jest to generator dokumentacji API.
słoik : tworzy i zarządza wszystkimi plikami JAR.
Idąc naprzód z architekturą Java, pozwól nam zrozumieć, w jaki sposób platforma Java jest niezależna?
W jaki sposób jest niezależna od platformy Java?
Kiedy jakikolwiek język programowania jest nazywany niezależnym od platformy? Cóż, wtedy i tylko wtedy, gdy może działać na wszystkich dostępnych systemach operacyjnych w odniesieniu do jego rozwoju i kompilacji.
Teraz, Jawa jest niezależny od platformy tylko ze względu na kod bajtowy. Pozwól, że ci powiem, czym dokładnie jest kod bajtowy? W prostych słowach,
Kod bajtowy to kod JVM, który jest zrozumiały dla maszyn.
Wykonanie kodu bajtowego w Javie udowadnia, że jest to język niezależny od platformy.
Tutaj pokażę Ci kroki związane z procesem wykonania kodu bajtowego Java.
Poniżej znajduje się wyjaśnienie wymaganych kroków:
sample.java → javac (sample. class) → JVM (sample.obj) → wynik końcowy
Pierwszy kod źródłowy jest używany przez kompilator java i jest konwertowany do pliku .class. Kod pliku klasy ma postać kodu bajtowego i ten plik klasy jest używany przez maszynę JVM do konwersji na plik obiektowy. Następnie możesz zobaczyć ostateczne wyniki na ekranie.
Przechodząc dalej w artykule o architekturze Javy, poznajmy pojęcie JIT w Javie .
JIT w Javie
Kompilator Just In Time, powszechnie znany jako JIT, jest zasadniczo odpowiedzialny za optymalizację wydajności aplikacji opartych na Javie w czasie wykonywania. Wydajność aplikacji zależy od kompilatora.
Oto prosty diagram przedstawiający trwający proces wewnętrzny.
Kompilator JIT kompiluje kod bajtowy metody do kodu maszynowego, kompilując go „Just In Time” do uruchomienia. Gdy metoda jest kompilowana, maszyna JVM bezpośrednio wywołuje skompilowany kod tej metody.
Zanurzmy się głębiej:
Kod bajtowy musi zostać zinterpretowany lub skompilowany do odpowiednich instrukcji maszynowych w zależności od dostarczonego zestawu instrukcji. Można je również wykonać bezpośrednio, jeśli architektura instrukcji jest oparta na kodzie bajtowym. Interpretacja kodu bajtowego wpływa na szybkość wykonania.
Aby zwiększyć wydajność, kompilatory JIT współdziałają z wirtualną maszyną Java (JVM) w czasie wykonywania i kompilują odpowiednie sekwencje kodu bajtowego do natywnego kodu maszynowego (jak pokazano na diagramie). Podczas korzystania z kompilatora JIT sprzęt jest w stanie wykonać kod natywny, w porównaniu z wielokrotną interpretacją tej samej sekwencji kodu bajtowego przez maszynę JVM, co wiąże się z obciążeniem dla procesu tłumaczenia.
W ten sposób dotarłem do końca tego artykułu o architekturze Java. Mam nadzieję, że powyższe tematy dodają wartości do Twojej wiedzy o Javie. Wkrótce więcej artykułów!
funkcja sortowania tablica c ++
Teraz, gdy znasz już podstawy języka Java, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na blogu „Architektura Java i jej komponenty”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.