Java Mimarisi ve Bileşenlerinin Açıklaması [222]
Yayınlanan: 2021-01-04Java programcısı olmadan önce bu dilin her yönünü anlamalısınız. Java'nın en önemli yönlerinden biri Java mimarisidir. Bu konudaki bir diğer teknik konu ise JVM bileşenlerinin bilinmesidir. Bu nedenle, bu yazımızda bu kritik konuların her ikisini de ele alacağız.
Bu makale, Java'nın temelleri hakkında genel bir anlayışa sahip olduğunuzu varsaymaktadır. Java'nın temellerine aşina olmasanız bile, aşağıdaki yorum bölümünde aklınıza gelebilecek tüm soruları sorabilirsiniz. Başlayalım:
İçindekiler
Java Mimarisi Açıklaması
Java'nın iki süreci vardır, derleme ve yorumlama. Java Derleyicisi, Java'da bulunan kodu bayt kodlarına dönüştürür. Java Sanal Makinesi (JVM) , bayt kodlarını makinenin doğrudan yürüttüğü makine koduna dönüştürür.
Bu süreci aşağıdaki adımlarda tanımlayabiliriz:
- Kaynak kodu Java Derleyicisine gider
- Java Derleyici onu bayt kodlarına dönüştürür
- Bayt kodları Java Sanal Makinesine gider
- Son olarak, işletim sistemine (işletim sistemi) gider
Artık Java mimarisinin nasıl çalıştığına biraz aşina olduğumuza göre, farklı bileşenlerine bir göz atabiliriz:
JVM (Java Sanal Makinesi)
Java'nın yaratıcıları bunun WORA (Bir Kez Her Yerde Çalıştırın Bir Kez Yaz) olmasını istedi. Bu, uygulamalarını herhangi bir platformda çalıştırabileceğiniz anlamına gelir, ancak Java'ya bu kaliteyi veren şey JVM'dir. JVM, Java kodunu yürütmek için ortamı sağlar. Bayt kodunu yorumlar ve makinenin Java programını çalıştırabilmesi için bunu makine koduna dönüştürür.

JVM yükleri kodu doğrular ve yürütür. Ayrıca, makinede çalışabilmesi için koda çalışma zamanı ortamı sağlar.
JRE (Java Çalışma Zamanı Ortamı)
JRE, Java programlarını çalıştırabileceğiniz bir çalışma zamanı ortamı oluşturur. Java kodunu alır ve aynısını gerekli kitaplıklarla birleştirir. JRE ayrıca yürütülmesi için JVM'yi başlatır. Java Runtime Environment, programları çalıştırabilmeniz için gerekli yazılım ve kitaplıklara sahiptir.
JDK (Java Geliştirme Kiti)
Java uygulamaları ve programları geliştirmek için JDK'yı kullanırsınız. Bu bir yazılım geliştirme ortamıdır ve JRE, bir derleyici, bir yorumlayıcı, bir belge oluşturucu ve diğerleriyle birlikte bir arşivleyici dahil olmak üzere birden çok geliştirme aracı içerir.
JVM Bileşenleri
Artık Java mimarisine aşina olduğunuza göre, onu daha iyi anlayabilmemiz için JVM'nin bileşenlerine bir göz atalım. JVM, Java için en önemli görevlerden birini gerçekleştirdiğinden, bu amaç için birçok parçası vardır. Her öğeyi ayrıntılı olarak tartışacağız:
ClassLoader Alt Sistemi
ClassLoader, Java Sanal Makinesi'nin sınıf dosyalarını yükleyen bir alt sistemidir. Diğer görevlerin gerçekleştirilebilmesi için programı yüklediği için mimarinin ilk bileşenidir. Ayrıca sınıf dosyalarını bağlar ve başlatır. Çalışmasını aşağıdaki üç bölüme ayırabiliriz:
Yükleniyor
Bu bileşen sınıfları yükler. Önyükleme sınıf yoluna ait sınıfları yüklemek için BootStrap ClassLoader'a sahiptir. Uzantı ClassLoader, ext klasörü içinde yer alan sınıfları yükler ve Application ClassLoader, Ortam Değişkeni ve benzer dosyaları belirtilen yolu yükler.
bağlama
Burada alt sistem, bayt kodunun doğru olup olmadığını doğrulamak için bir doğrulayıcıya sahiptir. Bayt kodu uygun değilse, doğrulama hatası üretecektir. Bağlantı bölümü, tüm statik değişkenler belleğini tahsis eder ve varsayılan değerleri atar. Ayrıca belleğin sembolik referanslarını orijinal olanlarla değiştirir.

başlatma
ClassLoading'in bu bölümünde, sistem statik değişkenleri orijinal değerlere atar ve statik bloğu yürütür.
Çalışma Zamanı Veri Alanı
JVM'nin bu bölümü aşağıdaki bileşenlere sahiptir:
Yöntem Alanı
Yöntem alanı, tüm sınıf düzeyindeki verileri depolar. Her JVM'nin yalnızca bir yöntem alanı vardır.
Yığın Alanı
Yığın alanı, tüm Nesneleri ve bunların örnek dizilerini ve değişkenlerini depolar. Yöntem alanı gibi, bir JVM'nin yalnızca bir yığın alanı vardır.
Yığın Alanı
Bu bölüm, her tehdit için benzersiz çalışma zamanı yığınları oluşturur ve yığın belleğindeki (Yığın Çerçevesi olarak da bilinir) her yöntem çağrısı için bir giriş yapar. Yöntemle ilgili bir Yerel Değişken Dizisi, ara işlemler için bir çalışma alanı görevi gören işlenen yığını ve yöntemle ilgili tüm sembollerin saklandığı çerçeve verisi vardır. Çerçeve verileri, bir istisna olmadıkça, yakalama bloğu bilgilerini korur.
PC Kayıtları
Her iş parçacığı, çalışan talimatların adresini tutan ayrı PC Kayıtlarına sahiptir. Bir talimatın yürütülmesini tamamladıktan sonra, PC kaydı bir sonrakiyle kendini günceller.
Yerel Yöntem Yığınları
Adından da anlaşılacağı gibi, bu bölüm yerel yöntem hakkında bilgi içerir. Her tehdit için benzersiz bir yerel yöntem yığını oluşturur.
Çalışma Zamanı Veri Alanının (yöntem alanı ve yığın alanı) ilk iki bileşeninin, yığın alanı değilken paylaşılan kaynaklar olduğunu unutmayın.
Yürütme Motoru
Yürütme Motoru bayt kodunu yürütür. Parça parça okur ve yürütür. Ayrıca farklı bileşenleri vardır:
Tercüman
Bu bileşen, bayt kodunu hızlı bir şekilde yorumlar ancak yürütmede biraz yavaştır. Sistemin bir yöntemi birden çok kez çağırması gibi önemli bir dezavantajı vardır ve her seferinde yeni bir yorum gerektirir. Yorumlayıcının bu dezavantajı, işlemin verimliliğine önemli ölçüde zarar verir.
JIT Derleyici
JIT Derleyicisi, yorumlayıcının sahip olduğu dezavantaja sahip değildir. Bu nedenle, Yürütme Motoru tekrarlanan kod bulduğunda, yorumlayıcı yerine JIT Derleyicisini kullanır. JIT Derleyicisi, bayt kodunu derledikten sonra yerel koda dönüştürür. Sistem, yerel kodu doğrudan kullanır.
JIT Derleyicisi, ara kod üretmek için ara kod oluşturucuya ve bunları optimize etmek için kod iyileştiriciye sahiptir. Ayrıca yerel dişiyi üreten bir hedef kod oluşturucuya ve sıcak noktaları bulan bir profile sahiptir.
Çöp toplayıcı
Yürütme Motorunun son bileşeni, referanssız nesneleri toplayan ve onlardan kurtulan çöp toplayıcıdır. system.gc()'yi çağırarak onu tetikleyebilirsiniz, ancak bu onun yürütülmesini garanti etmez.

Bu bileşenlerin dışında JVM, JNI (Java Native Interface) ve Native Method Libraries'e de sahiptir. İlki, ikincisi ile etkileşime girer ve yürütme için gerekli Yerel Kitaplıkları sağlar.
Dünyanın En İyi Üniversitelerinden Yazılım Geliştirme Kursu Alın . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Son düşünceler
Bu makaleyi kısa ve öz tutmaya çalıştık ve bunu bilgilendirici bulduğunuzdan eminiz. JVM'nin bileşenleri veya Java mimarisi hakkında herhangi bir sorunuz varsa, yorum yoluyla bizimle iletişime geçerek bize sorabilirsiniz.
Java ve uygulamaları hakkında daha fazla bilgiyi blogumuzda bulabilirsiniz. Bu sağlam programlama dilinin çeşitli yönlerini kapsayan çok sayıda yardımcı rehberimiz ve makalemiz var.
Java, OOP'ler ve tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın. 9+ proje ve ödev, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
