CORE Flashcards
Czym jest JVM ?
Java Virtual Machine (JVM) to środowisko uruchomieniowe, które umożliwia wykonywanie kodu napisanego w języku Java na różnych platformach
- Działa jako warstwa abstrakcyjna pomiędzy kodem źródłowym, a systemem operacyjnym, co pozwala na tłumaczenie i wykonywanie kodu Java bezpośrednio na danej platformie.
- JVM jest wykorzystywany do interpretacji kodu bajtowego, a także do optymalizacji wydajności aplikacji.
- odśmiecanie pamięci
- obługa wyjątków
- biblioteka standardowa
Czym jest byte code ?
Kod bajtowy jest zestawem instrukcji dla wirtualnej maszyny Javy (ang. Java Virtual Machine: JVM). Interpreter kodu bajtowego Javy umożliwia wykonanie programu.
Z czego składa sie JVM ?
- Ładowarka klas (Class Loader).
- Sterta (Heap).
- Stosy języka (language Stacks)
- Rejestr komputera PC (PC Registers).
- Stosy metod natywnych (Native Method Stacks).
- Platforma programistyczna (Native Method Interface).
Biblioteki (Native Method Libraries).
Co to jest Execution Engine ?
wykonuje “.class” (kod bajtowy). Odczytuje kod bajtowy wiersz po wierszu, wykorzystuje dane i informacje obecne w różnych obszarach pamięci i wykonuje instrukcje
Składa się z :
- interpretera
- Just-in-time compiler
- garbage collector
Co to jest Class Loader ?
Jest to podsystem, który wykorzystuje się do ładowania plików klas. Wykonuje on ładowanie, inicjowanie i łączenie.
Method Arera
- wszystkie informacje o klasach
- bazwa klasy, metody, zmienne
Stack
- zmienne loklane
- wszystkie wątki mają swój stack
PC Registers
Przechowuje on adres aktualnie realizowanej instrukcji maszyny wirtualnej Java. Każdy wątek w Java posiada osobny rejestr PC.
Native Method Stacks
Zawiera wszystkie metody natywne używane w aplikacji.
Interpreter
wykonuje krok po kroku instrukcje programu zapisane w postaci kodu bajtowego
JIT w JVM
- FEATURE JVM które poprawia wydajność aplikacji
- kompiluje bytecode do kodu maszynowego w czasie wykonywania
- analizuje kod bajtowy i kompiluje do maszynowego jeśli zdecyduje, że jest często wykonywany kod
- pozwala to na szybsze wykonywanie kodu niż intepretowaniu kodu za każdym wykonaniem
- kompilator może reagować na faktyczne zapotrzebowanie użytkowników aplikacji w trakcie jej działania
Heap
- obiekty
Garbage Collection
- ## proces automatycznego uwalniania pamięci sterty przez usuwanie obiektów które nie są juz osiągalne przez program
Które obiekty są do Garabage Collection
Obiekt nie ma już żadnych referencji wskazujących na niego.
Wszystkie referencje do obiektu wyszły poza zakres.
JDK
- dostarcza środowisko do tworzenia (Development Tools) oraz wykonywania JRE
- kompilator debugger