JVM mimarisi
- Java kursu
- Uzman
- Ders 1/46
- 5 dk
JVM'in sınıf yükleyici, çalışma zamanı ve yürütme motorunu öğrenirsin.
JVM mimarisi
JVM (Java Sanal Makinesi), derlenmiş Java kodunu çalıştıran soyut bir makinedir. Kaynak kod önce javac ile bayt koduna derlenir; sonra JVM bu bayt kodunu yorumlayarak veya derleyerek çalıştırır.
JVM üç ana bileşenden oluşur: sınıf yükleyici (class loader) sınıfları belleğe yükler, çalışma zamanı veri alanları (runtime data areas) veriyi tutar, uygulama motoru (execution engine) bayt kodunu çalıştırır. Java 21 LTS bu yapıyı kullanır.
Bu mimari, Java kodunun işletim sisteminden bağımsız çalışmasını sağlar. Aynı bayt kodu Windows, Linux veya macOS üzerinde aynı şekilde çalışır.
Derleme ve çalışma akışı
Java'nin akışı iki aşamalıdır. Önce javac .java kaynak dosyasını .class bayt kodu dosyasına çevirir. Sonra java komutu bayt kodunu JVM içinde çalıştırır.
javac Main.java # Main.class üretilir
java Main # JVM Main.class'i yükler ve çalıştırırBayt kodu işletim sisteminden bağımsızdır; herhangi bir JVM üzerinde çalışır. Bu, 'bir kez yaz, her yerde çalıştır' ilkesinin temelidir.
Uygulama Java sürümünü yazdır
Bir Main sınıfı tanımla. main yöntemi içinde Runtime.version().feature() değerini System.out.println ile yazdır. Bu değer Java LTS ana sürüm numarasıdır (Java 21 için 21).
Başlangıç kodu
public class Main {
public static void main(String[] args) {
// Java ana surum numarasini yazdır
}
}Örnek çözüm
public class Main {
public static void main(String[] args) {
System.out.println(Runtime.version().feature());
}
}Beklenen çıktı
21
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 JVM ne yapar?
- Kaynak kodu derler
- Bayt kodunu çalıştırır Doğru cevap
- İşletim sistemini yönetir
- Sınıfları siler
Açıklama: JVM derlenmiş bayt kodunu çalıştırır.
2 javac çıktısını tamamla
javac Main.____ # Main.class üretilir
javac Main.java # Main.class üretilir
Açıklama: javac Main.java komutu Main.class üretir.
3 JVM bileşenlerini eşleştir
| Kavram | Anlamı |
|---|---|
Class loader |
Sınıfları yükler |
Runtime data areas |
Veriyi tutar |
Execution engine |
Bayt kodunu çalıştırır |
javac |
Kaynak kodu derler |