JDK, JRE ve JVM

jdk-jre-ve-jvm (büyük resim için tıklayın)

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.

JVM (Java Virtual Machine)

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

JRE (Java Runtime Environment)

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.

JDK (Java Development Kit)

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.

Özet Tablosu

BileşenİçerikAmaçKullanıcı
JVMBytecode yorumlayıcıJava kodunu çalıştırırJRE ve JDK içinde yer alır
JREJVM + Core LibsUygulamaları çalıştırırSon kullanıcı
JDKJRE + javac vb.Geliştirme ve derlemeGeliştirici

Önemli Notlar

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.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

jdk jre jvm 

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)