Java dilinde yazılım geliştiren herkesin kafasını karıştırabilecek üç temel kavram vardır: JDK, JRE ve JVM. Bu üçlü, Java uygulamalarının yazılması, çalıştırılması ve yönetilmesinin temelini oluşturur. Aralarındaki farkları net bir şekilde anlamak, hem yazılımcıların hem de sistem yöneticilerinin işini kolaylaştırır.
Tanım: Java dilinde yazılmış bytecode’un çalışmasını sağlayan soyut bir makinedir.
Görev: *.class dosyasını alır, yorumlar veya JIT (Just-In-Time) ile çalıştırır.
Platformdan Bağımsızlık: “Write once, run anywhere” ilkesinin temel taşıdır.
Çalışma Anında Ne Yapar?
Bellek yönetimi (Heap, Stack)
Çöp toplama (Garbage Collection)
Exception handling
Thread yönetimi
Tanım: JVM'in çalışması için gereken ortamdır.
İçerik: JVM + Core Java class libraries (java.lang, java.util, vb.) + destekleyici dosyalar.
Kullanım: Java uygulamalarını çalıştırmak için yeterlidir. Geliştirme yapılamaz.
Kimler Kullanır? Son kullanıcılar, sadece Java uygulaması çalıştıracak olan sistemler.
Tanım: Java uygulamaları geliştirmek için gereken tüm araçları içeren kit.
İçerik: JRE + Geliştirme araçları (javac, javadoc, jdb, vs.)
Kullanım: Java uygulaması yazmak, derlemek ve test etmek için kullanılır.
Kimler Kullanır? Java geliştiricileri ve mühendisler.
Bileşen | İçerik | Amaç | Kullanıcı |
---|---|---|---|
JVM | Bytecode yorumlayıcı | Java kodunu çalıştırır | JRE ve JDK içinde yer alır |
JRE | JVM + Core Libs | Uygulamaları çalıştırır | Son kullanıcı |
JDK | JRE + javac vb. | Geliştirme ve derleme | Geliştirici |
JVM donanım ve işletim sistemine göre özelleştirilir, bu sayede platform bağımsızlığı sağlanır.
JDK sürümleri genellikle JRE içerir, ayrıca bazı dağıtımlarda artık JRE ayrı bir ürün olarak sunulmamaktadır (örneğin OpenJDK'da).
Modern IDE’ler (IntelliJ IDEA, Eclipse, vb.) altında çalışmak için JDK gereklidir.
*Gönderi ve görsel chatgpt ile oluşturulmuştur.