Java Sanal Makinesi – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Java Sanal Makinesinin Mimarisi
Java sanal makinesi (JVM), bir bilgisayar mimarisinin yazılım uygulamasıdır. Java programları JVM’yi hedeflediğinden, derlenmiş Java programları taşınabilir olmalıdır. Arcane işlemcili gömülü bir sistemde veya çok işlemcili bir sunucuda çalıştırılsınlar, aynı yönergeleri yürütürler ve standart API’ler ve aynı (veya en azından benzer) davranışa sahip destek kitaplıklarını kullanırlar.
Bazı açılardan, JVM spesifikasyonu takdire şayan bir iş çıkardı. Tüm temel işlemler, her doğru JVM’de aynı şeyi yapar. Bu küçük bir başarı değil; örneğin, her işlemci veya kayan nokta destek kitaplığının kayan nokta aritmetiğini uygulama biçiminde küçük farklılıklar var gibi görünüyor. IEEE standart kayan nokta uygulamalarının bile ince bir şekilde farklı olduğu ortaya çıktı. JVM, bu tür farklılıkların üzerine tutarlı bir arayüz koyar. Basit programlar tüm JVM’lerde çalışır ve aynı sonuçları verir.
JVM belirtiminin bazı bölümleri özellikle gevşektir. Spesifikasyon, taşınabilir kodu desteklemek için katı spesifikasyonlar ile JVM’yi çeşitli mimarilere taşımayı kolaylaştırmak için gevşek spesifikasyonlar arasında bir uzlaşma gibi görünüyor.
Örneğin:
• Java Dili Belirtimi, JLS, JVM’nin birden çok önceliği olması konusunda ısrar etmez. Gerektirir. Kaynakları işlemek için rekabet olduğunda, daha yüksek önceliğe sahip iş parçacıkları genellikle daha düşük önceliğe sahip iş parçacıklarına tercih edilerek yürütülür. Ancak bu tür bir tercih, en yüksek öncelikli iş parçacığının her zaman çalışacağını garanti etmez ve iş parçacığı öncelikleri karşılıklı dışlamayı güvenilir bir şekilde uygulamak için kullanılamaz.
• JLS’de hiçbir yerde çöp toplama gerekli değildir. Belleği boşaltmak için açık bir yol eklememeniz koşuluyla, çöp toplama sistemi olmayan bir JVM oluşturmak tamamen kabul edilebilir.
• Java’nın çizim ilkellerinin belirtimleri de benzer şekilde gevşektir. Fark edilir derecede farklı sonuçlar veren Motif stili veya Windows stili dikdörtgen kenarlıklara ve dolgulara izin verirler.
Gerçek zamanlı Java uzantıları bile sihir değildir. JVM, bir MC68000’in Alpha ile aynı Java programlarını yürütmesine izin verebilir, ancak bunların aynı hızda çalışmasını sağlamaz.
Teknik olarak, gerçek zamanlı bir program, platform tüm teslim tarihlerini karşılayacak kadar hızlı olduğunda platformun performansına bağlı olmamalıdır, ancak bir kez yaz her yerde çalıştır yöntemine körü körüne güvenmek bir hatadır. Gerçek zamanlı olarak WOCRAC’ı düşünmek daha iyidir.
JVM Bileşenleri
Belirli bir JVM yekpare bir program olarak uygulanabilir, ancak bir dizi bileşen olarak tasarlanmıştır. Kaba taneli bileşenler, sınıf yükleyici, bayt kodu yorumlayıcı, güvenlik yöneticisi, çöp toplayıcı, iş parçacığı yönetimi ve grafiklerdir. Grafikler dışında bu bileşenlerin her biri, JVM’nin gerçek zamanlı performansı üzerinde önemli bir etkiye sahiptir.
Sınıf Yükleme
Bir Java programı bir sınıfı ilk kez kullandığında, JVM sınıfı bulur ve onu Java ortamının geri kalanıyla entegre edecek şekilde ayarlar.
Sınıf yükleme aşağıdaki adımları içerir.
1. Noktaları dosya sınırlayıcılara dönüştürerek (UNIX’te eğik çizgi, DOS tabanlı sistemlerde ters eğik çizgi) ve ona sonek sınıfını ekleyerek, sınıfın tam nitelikli adından türetilen bir ada sahip bir dosyada sınıfı bulun. JVM, dosyayı kapsamlı bir şekilde arayabilir. CLASSPATH ortam değişkeninde adı geçen her dizine ve muhtemelen sınıf yolundaki bir dizinde kök salmış ağaçlardaki her dizine bakar.
2. Sınıf dosyasını bir ara belleğe okuyun.
3. Sınıf dosyasını, sınıf dosyası tarafından tanımlanan verileri yansıtan JVM dahili veri yapılarına özetleyin,
kullandığı sabitler, içindeki sınıflar ve içindeki yöntemler.
4. Doğrulayıcıyı sınıf üzerinde çalıştırın. Doğrulayıcı, kanıtlayan bir “teorem kanıtlayıcı” algoritmasıdır.
sınıftaki bayt kodu çeşitli kurallara uyar; örneğin doğrulayıcı, JVM’nin başlatılmamış verileri kullanan kod içeren bir sınıfı yüklemesine izin vermez.
5. Sınıfın ilk kullanımından önce JVM, dosyadaki sınıflar için statik verileri başlatmalıdır. Sınıf yüklendiğinde aslında statik verileri başlatması gerekmez; statik verilere erişilmeden önce herhangi bir zamanda statik verileri başlatabilir.
6. JVM’nin bu dosyadaki sınıflar tarafından kullanılabilecek sınıfları yüklemesine izin verilir. Bu, JVM’de yerleşik olmayan bir sınıfa yapılan ilk başvurunun, söz konusu sınıfın geçişli kapanışı tarafından kullanılabilecek tüm sınıfları yüklemesine neden olabilir.
7. JVM, yeni yüklenen yöntemlerden bazılarını derlemeyi seçebilir.
Java indir
Java download
Java 32 bit
Java 64 bit
Java SE
java download 64-bit
Java JDK
Java son sürüm
Nasıl yapıldığı ve yükleme işlemi tarafından harcanan süre (ve gerçekleşme süresi) JVM uygulamaları arasında farklılık gösterebilir. Sıradan JVM’ler verim için optimize edilmiştir ve başlatma gibi potansiyel olarak pahalı işlemleri mümkün olduğu kadar, belki de söz konusu alanı kullanan bir yöntem gerçekten çağrılana kadar ertelemeyi seçebilir.
Gerçek zamanlı bir JVM, bu optimizasyon sınıfını kullanamaz çünkü programcı, başlatmanın zaten gerçekleşmiş olduğunu kanıtlayamadığı sürece her yöntem çağrısının başlatma maliyetlerine neden olacağını varsaymak zorunda kalacaktır; örneğin, düz çizgi kodundaki yönteme yapılan ikinci çağrıydı.
Derin İşlemciye Özgü Optimizasyon
Modern yüksek performanslı işlemciler, aynı anda çalışabilen birden çok işlevsel birime sahiptir. Bu işlemciler, komut akışı işlemcinin tüm fonksiyonel birimleri meşgul edecek şekilde düzenlenmesi durumunda en iyi şekilde çalışır. Bazı işlemciler, birimlerini meşgul etmek için talimat akışını yeniden sıralayabilir, ancak bu işlemciler bile, talimat akışı kendilerine yardımcı olacak şekilde düzenlenirse daha iyi çalışır.
Kod yazarken her işlevsel birimin durumunu akılda tutmak sıkıcıdır, ancak bu düzeyde bir işçilik, büyük performans iyileştirmeleri sağlayabilir.
Bu genellikle bayt kodu yorumlayıcısı için iyi bir yatırım değildir. Birincisi, optimizasyonlar işlemcinin belirli bir sürümüne özeldir. PowerPC 604e için ayarlanmış bir tercüman, PowerPC 603’te ayarlanmamış bir tercümandan daha kötü çalışabilir.
İkincisi, mevcut performans iyileştirmesi işlevsel birimlerin sayısına bağlıdır ve en işlevsel birimlere sahip işlemciler genellikle kendi talimat akışlarını yeniden düzenlemek için en ustaca sistemlere sahip olanlardır. Üçüncüsü, çoğu Java işlem kodu yalnızca birkaç makine yönergesi gerektirir.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)