JVM nedir? Java Sanal makine Archidoku
JVM nedir? Java?
Java Sanal Makine (JVM) sürmek için çalışma ortamı sağlayan bir motordur. Java Kod veya uygulamalar. Dönüştürür Java bayt kodunu makine diline aktarın. JVM'nin bir parçası Java Çalışma Zamanı Ortamı (JRE). Diğer programlama dillerinde derleyici belirli bir sistem için makine kodu üretir. Fakat, Java derleyici olarak bilinen bir Sanal Makine için kod üretir Java Sanal makine.
JVM Nasıl Çalışır?
İlk olarak, Java kod bayt koduna derlenir. Bu bayt kodu farklı makinelerde yorumlanır. Ana bilgisayar sistemi ile Java kaynak, Bytecode bir aracı dildir. JVM'de Java bellek alanının tahsis edilmesinden sorumludur.

Bu JVM eğitiminde şunları öğreneceksiniz:
ArchiJVM'nin yapısı (Java Sanal Makine)
Şimdi bu JVM eğitiminde şunu anlayalım: ArchiJVM yapısı. JVM mimarisi Java sınıf yükleyici, hafıza alanı, yürütme motoru vb. içerir.
1) Sınıf Yükleyici
Sınıf yükleyici, sınıf dosyalarını yüklemek için kullanılan bir alt sistemdir. Yükleme, Bağlama ve Başlatma olmak üzere üç önemli işlevi gerçekleştirir.
2) Yöntem Alanı
JVM Yöntem Alanı, meta veriler, sabit çalışma zamanı havuzu ve yöntem kodları gibi sınıf yapılarını saklar.
3) Yığın
Bütün nesneler, bunların ilgili örnek değişkenleri ve dizileri yığında depolanır. Bu bellek ortaktır ve birden fazla iş parçacığı arasında paylaşılır.
4) JVM Dil Yığınları
Java dil Yığınları yerel değişkenleri ve kısmi sonuçlarını depolar. Her iş parçacığının kendi JVM yığını vardır ve iş parçacığı yaratılırken aynı anda yaratılır. Bir yöntem çağrıldığında yeni bir çerçeve yaratılır ve yöntem çağırma işlemi tamamlandığında silinir.
5) PC Kayıtları
PC kaydı, bilgisayarın adresini saklar. Java Şu anda yürütülmekte olan sanal makine talimatı. İçinde Java, her iş parçacığının ayrı bir PC kaydı vardır.
6) Yerel Yöntem Yığınları
Yerel yöntem yığınları, yerel kitaplığa bağlı olarak yerel kod talimatlarını tutar. Bunun yerine başka bir dilde yazılmış Java.
7) Yürütme Motoru
Donanımı, yazılımı veya komple sistemleri test etmek için kullanılan bir yazılım türüdür. Test yürütme motoru hiçbir zaman test edilen ürün hakkında herhangi bir bilgi taşımaz.
8) Yerel Yöntem arayüzü
Yerel Yöntem Arayüzü bir programlama çerçevesidir. İzin verir Java JVM'de çalışan ve kütüphaneler ve yerel uygulamalar tarafından çağrılacak kod.
9) Yerel Yöntem Kütüphaneleri
Yerel Kütüphaneler, Yerel Kütüphanelerin bir koleksiyonudur(C, C++) Yürütme Motorunun ihtiyaç duyduğu.
Yazılım Kodu Derleme ve Yürütme süreci
Bir yazılım programı yazmak ve çalıştırmak için aşağıdakilere ihtiyacınız vardır
1) Editör – Programınızı yazmak için bunun için bir not defteri kullanılabilir
2) derleyici – Yüksek dil programınızı yerel makine koduna dönüştürmek için
3) Bağlayıcı – Ana programınızdaki farklı program dosyaları referansını bir araya getirmek.
4) Yükleyici – Dosyaları Sabit Disk, Flash Sürücü, CD gibi ikincil depolama cihazınızdan yürütülmek üzere RAM'e yüklemek. Kodunuzu çalıştırdığınızda yükleme otomatik olarak yapılır.
5) Yürütme – İşletim sisteminiz ve işlemciniz tarafından işlenen kodun fiili olarak yürütülmesi.
Bu arka planla, aşağıdaki videoyu izleyin ve JVM'nin iç işleyişini ve JVM mimarisini öğrenin (Java Sanal Makine).
Tıkla okuyun videoya erişilemiyorsa
C kodu Derleme ve Yürütme süreci
Anlamak için Java derleme işlemi Java. Öncelikle C'de derleme ve bağlama işlemine kısaca bir göz atalım.
Main'de f1 ve f2 adında iki fonksiyon çağırdığınızı varsayalım. Main fonksiyonu a1.c dosyasında saklanır.
f1 işlevi a2.c dosyasında saklanır
f2 işlevi a3.c dosyasında saklanır
Tüm bu dosyalar, yani a1.c, a2.c ve a3.c, derleyiciye beslenir. Çıktısı, makine kodu olan karşılık gelen nesne dosyalarıdır.
Bir sonraki adım, tüm bu nesne dosyalarını linker yardımıyla tek bir .exe dosyasına entegre etmektir. Bağlayıcı tüm bu dosyaları bir araya toplayacak ve .exe dosyasını oluşturacaktır.
Programın çalıştırılması sırasında, bir yükleyici programı, bir.exe'yi dosyaya yükleyecektir. RAM infaz için.
Java kod Derleme ve Yürütme Java VM
Şimdi bu JVM eğitiminde JAVA sürecine bakalım. Ana dosyanızda f1 ve f2 olmak üzere iki yönteminiz var.
- Ana yöntem a1.java dosyasında saklanır
- f1 bir dosyada a2.java olarak saklanır
- f2 bir dosyada a3.java olarak saklanır
Derleyici üç dosyayı derleyecek ve BYTE kodundan oluşan 3 karşılık gelen .class dosyası üretecektir. C'den farklı olarak hiçbir bağlantı yapılmaz.
The Java VM veya Java Sanal Makine RAM'de bulunur. Yürütme sırasında, sınıf yükleyicisi kullanılarak sınıf dosyaları RAM'e getirilir. BYTE kodu herhangi bir güvenlik ihlali açısından doğrulanır.
Daha sonra, yürütme motoru Bytecode'u Yerel makine koduna dönüştürecektir. Bu tam zamanında derlemedir. Bunun başlıca nedenlerinden biridir. Java nispeten yavaştır.
NOT: JIT veya Tam zamanında derleyici, Java Sanal Makine (JVM). Bayt Kodunun benzer işlevselliğe sahip kısmını aynı anda yorumlar.
Neden Java Hem Yorumlanmış hem de Derlenmiş Dil?
Programlama dilleri olarak sınıflandırıldı
- Yüksek Düzeyde Dil Örn. C++, Java
- Orta Düzey Diller Örn. C
- Düşük Seviyeli Dil Örn. Assembly
- son olarak Makine Dili olarak en düşük seviye.
A derleyici Bir programı bir dil düzeyinden diğerine dönüştüren bir programdır. Örnek dönüşüm C++ programı makine koduna dönüştürür. Java derleyicisi, yüksek seviyeli Java kodunu bayt koduna (bu da bir makine kodu türüdür) dönüştürür.
An çevirmen bir programı bir düzeyde başka bir programlama diline dönüştüren bir programdır aynı seviye. Örnek dönüşüm Java içine programla C++
In Java, Tam Zamanında Kod üreteci, bayt kodunu aynı programlama seviyelerinde olan yerel makine koduna dönüştürür.
Bu nedenle, Java hem derlenmiş hem de yorumlanmış bir dildir.
Neden Java yavaş?
Yavaşlığın ardındaki iki ana neden Java vardır
- Dinamik Bağlantı: C'den farklı olarak bağlantı, program her çalıştırıldığında çalışma zamanında yapılır. Java.
- Çalışma Zamanı Yorumlayıcısı: Bayt kodunun yerel makine koduna dönüştürülmesi çalışma zamanında yapılır. Java bu da hızı yavaşlatır
Ancak en son sürüm Java Performans darboğazlarını büyük ölçüde giderdi.
ÖZET:
- JVM'nin tam biçimi Java Sanal Makine. JVM girişi Java onu çalıştıran motordur Java Kod. Dönüştürür Java bayt kodunu makine diline aktarın.
- JVM mimarisi Java sınıf yükleyici, hafıza alanı, yürütme motoru vb. içerir.
- JVM'de, Java kod bayt koduna derlenir. Bu bayt kodu farklı makinelerde yorumlanır
- JIT, Tam zamanında derleyici anlamına gelir. JIT, Java Sanal Makine (JVM). Yürütme süresini hızlandırmak için kullanılır
- Diğer derleyici makinelerle karşılaştırıldığında JVM Java yürütmede yavaş olabilir.