CodeBlanks Logo Icon CodeBlanks

JVM mimarisi

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ır

Bayt 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

Main.java
public class Main {
    public static void main(String[] args) {
        // Java ana surum numarasini yazdır
    }
}

Örnek çözüm

Main.java
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

Soru
javac Main.____  # Main.class üretilir
Cevap
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

Uzman bölümündeki tüm dersler