JVM nedir? JVM'yi açıklayın. Archidoku
⚡ Akıllı Özet
Java Sanal Makine (JVM), çalıştırma ortamı sağlayan motordur. Java Platformdan bağımsız bayt kodunu yerel makine diline dönüştüren kod. Bu, aşağıdakilerin bir parçasıdır: Java Çalışma Ortamı ve etkinleştirir Java'ın bir kere yaz, her yerde çalıştır taşınabilirliği.

JVM nedir? Java?
Java Sanal Makine (JVM) çalıştırmak için çalışma ortamı sağlayan bir motordur. Java Kod veya uygulamaları dönüştürür. Java bayt kodunu makine diline dönüştürün. JVM, aşağıdakilerin bir parçasıdır: Java Çalışma Ortamı (JRE). Diğer programlama dillerinde derleyici, belirli bir sistem için makine kodu üretir. Ancak, Java Derleyici, sanal makine olarak bilinen bir yapı 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 sistem ile işleyici sistem arasında Java Kaynak kod ve bayt kodu, ara bir dildir. JVM'de ise... Java bellek alanının tahsis edilmesinden sorumludur.
Çalışma Java Sanal Makine (JVM)
ArchiJVM'nin yapısı (Java Sanal Makine)
Şimdi, JVM'nin mimarisini anlayalım. JVM mimarisi şu alanlarda incelenebilir: Java İçerisinde bir sınıf yükleyici, bellek alanı, yürütme motoru ve daha fazlası bulunur.
Java Sanal makine Archidoku
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 üç temel işlevi yerine getirir.
2) Yöntem Alanı
JVM Metot Alanı, meta veriler, sabit çalışma zamanı havuzu ve metotların kodu gibi sınıf yapılarını depolar.
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 bunların kısmi sonuçlarını depolar. Her iş parçacığının, iş parçacığı oluşturulduğu anda oluşturulan kendi JVM yığını vardır. Bir yöntem çağrıldığında yeni bir çerçeve oluşturulur ve yöntem çağırma işlemi tamamlandığında silinir.
5) PC Kayıtları
Bilgisayar kayıt defteri, adresi saklar. Java Şu anda yürütülen sanal makine komutu. JavaHer iş parçacığının kendine ait ayrı bir PC kaydı vardır.
6) Yerel Yöntem Yığınları
Yerel metot yığınları, yerel kütüphaneye bağlı olan yerel kodun talimatlarını içerir. Bu, yerel kütüphane yerine başka bir dilde yazılır. Java.
7) Yürütme Motoru
Yürütme motoru bayt kodunu okur ve parça parça yürütür. Bayt kodunu yerel makine koduna dönüştürmek ve çalıştırmak için bir yorumlayıcı ve Anlık Derleme (JIT) derleyicisi kullanır.
8) Yerel Yöntem Arayüzü
Yerel Yöntem Arayüzü bir programlama çerçevesidir. İzin verir Java JVM üzerinde çalışan ve yerel uygulamalar ve kütüphaneler tarafından çağrılan kod.
9) Yerel Yöntem Kütüphaneleri
Native Libraries, yerel kütüphanelerin (C, C++) Yürütme Motorunun ihtiyaç duyduğu.
Yazılım Code Derleme ve Yürütme süreci
Bir yazılım programı yazmak ve çalıştırmak için şunlara ihtiyacınız vardır:
- 1) Editör – Programınızı yazmak için; bunun için bir not defteri kullanabilirsiniz.
- 2) derleyici – Yüksek seviyeli programlama dilinizdeki programı yerel makine koduna dönüştürmek.
- 3) Bağlayıcı – Ana programınızdaki farklı program dosyası referanslarını bir araya getirmek için.
- 4) Yükleyici – Sabit disk, flash bellek veya CD gibi ikincil depolama aygıtınızdaki dosyaları, çalıştırma için RAM'e yüklemek. Kodunuzu çalıştırdığınızda yükleme işlemi otomatik olarak yapılır.
- 5) Yürütme – Kodun fiili yürütülmesi, işletim sisteminiz ve işlemciniz tarafından gerçekleştirilir.
Bu bilgiler ışığında, aşağıdaki videoyu izleyerek JVM'nin iç işleyişini ve mimarisini öğrenebilirsiniz (Java Sanal Makine).
Tıkla okuyun videoya erişilemiyorsa
C kodu Derleme ve Yürütme süreci
Anlamak için Java Derleme sürecine geçmeden önce, C dilindeki derleme ve bağlama süreçlerine kısaca bir göz atalım.
Ana fonksiyonda f1 ve f2 olmak üzere iki fonksiyon çağırdığınızı varsayalım. Ana fonksiyon a1.c dosyasında saklanmaktadır.
f1 fonksiyonu a2.c dosyasında saklanmaktadır.
f2 fonksiyonu a3.c dosyasında saklanmaktadır.
a1.c, a2.c ve a3.c gibi tüm bu dosyalar derleyiciye gönderilir ve derleyicinin çıktısı, makine kodu olan karşılık gelen nesne dosyalarıdır.
Bir sonraki adım, tüm bu nesne dosyalarını bir bağlayıcı (linker) yardımıyla tek bir .exe dosyasına entegre etmektir. Bağlayıcı, tüm bu dosyaları bir araya getirerek .exe dosyasını oluşturacaktır.
Program çalışması sırasında, bir yükleyici program .exe dosyasını yükleyecektir. RAM yürütme için.
Java kod Derleme ve Yürütme Java VM
Şimdi, şu sürece bir göz atalım: JavaAna fonksiyonunuzda f1 ve f2 olmak üzere iki yönteminiz var.
- Ana metot a1.java dosyasında saklanmaktadır.
- f1 bir dosyada a2.java olarak saklanır
- f2 bir dosyada a3.java olarak saklanır
Derleyici, üç dosyayı derleyerek BYTE kodundan oluşan üç adet .class dosyası üretecektir. C'nin aksine, herhangi bir bağlantı işlemi yapılmaz.
MKS Java sanal makine, altın Java Sanal makine RAM üzerinde bulunur. Çalıştırma sırasında, sınıf yükleyici kullanılarak sınıf dosyaları RAM'e getirilir. BYTE kodu, herhangi bir güvenlik açığı olup olmadığı açısından doğrulanır.
Ardından, yürütme motoru bayt kodunu yerel makine koduna dönüştürecektir. Bu, anlık derlemedir. Bunun başlıca nedenlerinden biri de budur. Java nispeten yavaştır.
NOT: JIT veya Anlık Derleyici, derleme sisteminin bir parçasıdır. Java Sanal Makine (JVM). Benzer işlevselliğe sahip bayt kodunun bölümlerini aynı anda yorumlar.
Neden Java Hem Yorumlanmış hem de Derlenmiş Dil?
Programlama dilleri şu şekilde sınıflandırılır:
- Üst Düzey Dil, örneğin, C++, Java
- Orta Seviye Diller, örneğin C
- Düşük Seviyeli Dil, örneğin, Assembly
- Son olarak, en alt seviye Makine Dili olarak karşımıza çıkıyor.
A derleyici Bir programı bir dil seviyesinden diğerine dönüştüren bir programdır. Örneğin, bir programın dönüştürülmesi C++ programı makine koduna dönüştürün. Java derleyici yüksek seviyeyi dönüştürür Java kodu bayt koduna (bu aynı zamanda bir tür makine kodudur) dönüştürür.
An çevirmen Bir programlama dilini bir seviyeden başka bir programlama diline dönüştüren bir programdır. aynı seviyeÖrneğin, bir dönüşümün Java içine programla C++.
In JavaAnlık kod üreteci, bayt kodunu aynı programlama seviyesinde olan yerel makine koduna dönüştürür. Dolayısıyla, Java Dil hem derlenmiş hem de yorumlanmış bir dildir.
Neden Java yavaş?
Yavaşlığın ardındaki iki ana neden Java şunlardı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. JavaBu da hızı daha da yavaşlatır.
Ancak, en son sürümlerinde Java Bu performans darboğazlarını büyük ölçüde giderdik.











