crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
1. Mimari Hiyerarşi
Bu üç kavram iç içe geçmiştir. En dışta geliştirme araçlarını içeren JDK, onun içinde uygulamayı çalıştırmak için gereken JRE ve en merkezde ise kodun asıl koşturulduğu JVM yer alır.
2. JVM (Java Virtual Machine) - "Motor"
JVM, Java mimarisinin kalbidir. Java kodunun donanımdan bağımsız çalışmasını sağlayan "sanal" bir bilgisayardır.
[]Görevi: Java derleyicisi tarafından üretilen Bytecode'u (.class dosyaları) okur ve üzerinde çalıştığı işletim sisteminin (Windows, Linux, MacOS) anlayacağı makine diline çevirir.
[]Özelliği: Yazılım platformdan bağımsızdır ama JVM platforma özeldir. Windows için farklı, Linux için farklı bir JVM indirilir; ancak hepsi aynı bytecode'u çalıştırabilir.- Bileşenleri: Bellek yönetimi (Garbage Collector), JIT Compiler ve Class Loader.
3. JRE (Java Runtime Environment) - "Çalıştırma Ortamı"
Eğer bir yazılımcı değilseniz ve sadece bilgisayarınızda bir Java uygulamasını çalıştırmak istiyorsanız, ihtiyacınız olan tek şey JRE'dir.
[]Kapsamı: JVM + Kütüphane Dosyaları (Runtime Libraries).
[]Görevi: Java uygulamalarının çalışması için gereken ortamı sağlar. Kodun ihtiyaç duyduğu temel kütüphaneler (math, util, lang vb.) burada yer alır.- Farkı: JRE ile kod yazamazsınız veya derleyemezsiniz; sadece hazır yazılmış kodu "koşturursunuz".
4. JDK (Java Development Kit) - "Geliştirici Takım Çantası"
Bir Java geliştiricisiyseniz, bilgisayarınıza yüklemeniz gereken asıl paket budur.
[]Kapsamı: JRE + Geliştirme Araçları (Compiler, Debugger, Javadoc vb.).
[]Görevi: Kodu yazmanıza, derlemenize ve hatalarını ayıklamanıza yarar.- En Önemli Aracı: javac (Java Compiler). Yazdığınız .java dosyalarını JVM'in anlayacağı .class dosyalarına bu araç dönüştürür.
5. Kodun Yolculuğu: Mimari Özet
Java kodunun nasıl işlendiğini bir kod bloğu ve akış üzerinden görelim:
Java:
// 1. ADIM: Kodu siz yazarsınız (JDK gereklidir)
public class Merhaba {
public static void main(String[] args) {
System.out.println("Merhaba Dünya!");
}
}
[]Derleme (JDK): Terminale javac Merhaba.java yazarsınız. JDK içindeki derleyici bunu Merhaba.class (Bytecode) haline getirir.
[]Paketleme (JRE): Uygulama çalıştırıldığında JRE gerekli kütüphaneleri yükler.- Çalıştırma (JVM): JVM bu bytecode'u satır satır işleyerek ekrana "Merhaba Dünya!" yazdırır.
Karşılaştırma Tablosu
| Özellik | JVM | JRE | JDK |
|---|---|---|---|
| Açılımı | Virtual Machine | Runtime Environment | Development Kit |
| İçerik | Sadece Yazılım Motoru | JVM + Kütüphaneler | JRE + Derleme Araçları |
| Kullanım Amacı | Bytecode koşturmak | Uygulamayı çalıştırmak | Uygulamayı geliştirmek |
Sonuç
Kısacası; JVM kodu çalıştıran motor, JRE o motorun çalışması için gereken yakıt ve yollar, JDK ise o motoru ve yolu inşa eden mühendisin kullandığı alet çantasıdır.