|
Uzun zamandır JAVA kullanan birçok arkadaşım benim gibi olabilir, ama JDK, JRE ve JVM arasındaki bağlantı ve fark her zaman belirsizdi. Bugün bu makaleyi yazacağım, bu üç kişi arasındaki ilişkiyi çözmek.
JDK : Java Geliştirme Araç Kiti. JDK, Java Çalışma Zamanı Çevresi, birçok Java aracı (javac/java/jdb vb.) ve Java tabanlı kütüphaneler (yani Java API'leri rt.jar içerir) dahil olmak üzere tüm JAVA'nın çekirdeğidir. En yaygın JDK, Sun'un yayımladığı JDK'dır; Sun'a ek olarak, yabancı IBM şirketleri kendi JDK'larını geliştirmiştir, yerel Taobao da kendi JDK'sını geliştirmiştir, çeşitli kuruluşlar bazı yönlerde gelişme sağlamak ve kendi ihtiyaçlarına uyum sağlamak için kendi JDK'larını geliştirmiştir; örneğin IBM'in JDK'sının SUN'un JDK'sından çok daha verimli olduğu söylenmektedir. Ama her neyse, önce temel Sun JDK'yı ustalaşmamız gerekiyor. JDK'nın üç versiyonu vardır: J2SE, standart sürüm, standart sürüm, genellikle J2EE, enterpsise edtion, kurumsal sürüm kullandığımız bir sürümdür; bu JDK kullanılarak J2EE uygulamaları geliştirilir. J2ME, mikro edsiyon, özellikle mobil cihazlarda ve gömülü cihazlarda java uygulamaları için kullanılır
Genellikle JDK'yı Java API'ye atıfta bulunmak için kullanırız, Java API Java'nın uygulama programlama arayüzüdür, aslında seleflerimiz tarafından yazılmış bazı java sınıfları, önemli dil yapıları ve temel grafikler, ağ ve dosya giriş/girişi gibi dersler bulunur; bunlara seleflerimizin kendi programlarımızda yazdığı sınıflar der, kendi geliştirmemiz için bir temel oluşturur. Elbette, daha iyi performansa veya daha güçlü özelliklere sahip daha fazla üçüncü taraf kütüphanesi var.
JRE: Java Çalışma Zamanı Çevresi. Başka bir deyişle, tüm Java programlarının JRE kapsamında çalışması gerekir. JVM ve JAVA çekirdek kütüphaneleri ile destekleyici dosyaları içerir. JDK ile karşılaştırıldığında, derleyiciler, hata ayıklayıcılar ve diğer araçlar gibi geliştirme araçlarını içermez.
JVM: Java Sanal Mekaniği (JAVA Sanal Makine). JVM, gerçek bir bilgisayarda çeşitli bilgisayar fonksiyonlarının simülasyonu yoluyla uygulanan kurgusal bir bilgisayar olan JRE'nin bir parçasıdır. JVM'nin işlemciler, yığınlar, kayıtlar vb. gibi tam donanım mimarisi vardır ve ayrıca buna karşılık gelen bir komut sistemi vardır. JVM'nin ana görevi, kendi komut setini (yani bayt kodu) yorumlamak ve bunu yerel CPU'nun komut setine veya işletim sisteminin sistem çağrılarına eşlemektir. Java dili, aslında farklı bir işletim sistemi olan ve farklı bir işletim sistemi olan platformlar çapraz çalışır; böylece işletim sisteminden bağımsız ve tam bir çapraz platform oluşturur. JVM, üst düzey Java kaynak dosyalarıyla ilgilenmiyor, sadece kaynak dosyalar tarafından oluşturulan sınıf dosyalarıyla ilgileniyor. Sınıf dosyası, bir JVM komut seti, bir sembol tablosu ve bazı ek bilgilerden oluşur. Aşağıdaki şekil, JDK, JRE ve JVM arasındaki ilişkiye iyi bir genel bakış sunmaktadır:
Geliştirmemizin gerçek durumu, JDK kullanarak kendi JAVA programımızı geliştirdikten sonra (JAVA API'sini çağırın), metin java dosyalarımızı JDK'daki derleyici (javac) üzerinden JAVA bayt koduna derleriz, bu JAVA baytkodlarını JRE'de çalıştırırız, JVM bu bayt kodlarını ayrıştırır ve CPU komut setine veya işletim sisteminin sistem çağrılarına eşliyoruz.
|