
William Charles
0
936
14
Şu anda bir sonraki uygulamanız için java kullanmanız mı yoksa yerel araç takımları ve çerçeveleri mi kullandığınızı tartışıyor musunuz? Java'nın bir uygulama için yerel programlamaya göre sağladığı avantajları bilmek ister misiniz? Öğrenmek için okumaya devam edin!
Yerli Bir Uygulama Nedir??
Yerel bir uygulama, özellikle bir işletim sistemi (OS) ve muhtemelen bu işletim sistemini çalıştıran donanım için yazılmış bir programdır. Çoğunlukla C / C ++ gibi bir dilde yazılır. C / C ++ kaynak kodu, bir derleyici kullanılarak bir nesne biçimine derlenir ve ardından gerekli kütüphaneler bağlanarak çalıştırılabilir bir düzende toplanır. Bu yolla oluşturulan bir program, oluşturulduğu belirli donanım ve işletim sistemlerinde çalışır, ancak diğer sistemlerde düzgün çalışmayabilir.
Yerel Uygulamalar Neden Taşınabilir Değil??
C / C ++ gibi bir dil için bir derleyici, kaynak kod deyimlerini hedeflenen CPU için makine diline çevirir. Bu kodu farklı bir CPU'da çalıştırmayı denediğinizde, derlenmiş koddaki makine dili talimatları bu CPU tarafından desteklenmeyebileceğinden program düzgün çalışmayabilir (veya hiç çalışmayabilir)..
Ayrıca, yeni işletim sistemi orijinal sistemden farklı olabilir ve program dosyasını çalıştırılabilir olarak bile tanımayabilir. Bu, farklı işletim sistemlerinde (Windows, Linux, MacOS vb.) Çalıştırılabilir dosyalar için kullanılan farklı dosya biçimlerinden kaynaklanmaktadır..
Taşınabilirlik, yalnızca derleyiciyi bir sonraki sürüme yükseltmek için kırılma değişikliklerine neden olabilecek yerel uygulamalarda bu kadar büyük bir sorundur. Yeni derleyici ile çalışmak için kodunuzun düzeltilmesi gerekebilir. Bu nedenle, kaynak kodunun bilinenler ile sıçratılması ifdef donanım, işletim sistemi veya derleyiciye özel geçici çözümleri yalıtmak için ifadeler yaygındır.
Aşağıdakiler, BZLib sıkıştırma kütüphanesinden küçük bir kod parçacığını gösterir. ifdefPlatform özelliklerini izole etmek için s:
#ifdef _WIN32 # içerir # ifdef small / * windows.h char küçük için küçük tanımlar * / # undef small # endif # ifdef BZ_EXPORT # tanım BZ_API (func) WINAPI func # tanım BZ_EXTERN extern # else / * windows dll dosyasını dinamik olarak alır * / # tanımlamak BZ_API (func) (WINAPI * func) # tanımla BZ_EXTERN # endif #else # tanım BZ_API (func) func # tanımla BZ_EXTERN extern #endif
İşletim Sistemlerinde Kaynak Kod Taşınabilirliği
Bu durum, C / C ++ kaynak kodunun yeni CPU'ya yeniden derlenmesiyle bir dereceye kadar azaltılabilir. Bununla birlikte, yeni CPU için işletim sistemi farklı olabilir. Kaynak kodu, ister büyük ister küçük olsun, değişiklik olmadan derlenmeyebilir. İşletim sistemi sürümlerinde yapılan küçük değişiklikler bile bazı kaynak kod değişikliklerini gerektirebilir.
Windows ve Linux / UNIX gibi farklı işletim sistemlerini düşündüğünüzde, taşınabilirlik tamamen yeni bir top oyunudur. Sizi işletim sisteminden tamamen izole eden bir araç seti veya bir çerçeve kullanmıyorsanız, kaynak kodun taşınabilirliği imkansızdır. Bunun nedeni, işletim sistemi arayüzünün bu sistemler arasında tamamen farklı olmasıdır. Kodunuzun en uzak köşelerinde, doğrudan herhangi bir işletim sistemi ilkelini kullanırsanız, kodunuz bu farklı işletim sistemlerinde taşınabilir olmaz.
Java Nasıl Farklıdır??
Bu senaryoda, java yeni bir paradigma, yeni bir bina yazılımı sunar. Java'da programlama yaparken, sanal makine. Böyle bir makine bir konsept olarak mevcuttur ve java dili bu makineye karşı programlama için arayüzler sunar. Örneğin, sanal makinenin kullanılabilir bellek miktarını, CPU sayısını, ağ arayüzlerini vb. Sorgulayabilirsiniz..
Java Uygulamaları Nasıl İnşa Edilir?
Java dili, kaynak kodunu nesne koduna çeviren bir java derleyicisi sağlar. Nesne kodu daha sonra java sanal makinesi, bu derleyiciden ayrı bir programdır. İşletim sistemi, java sanal makinesini, bu işletim sisteminde çalışan başka bir program olarak görüyor.
Taşınabilirlik yükü şimdi uygulama programcısından java sanal makine satıcısına geçti. Uygulama programcısı, java dilinin ilkellerini kullanarak yazılımı yazar ve java sanal makinesi bu ilkelleri ana işletim sistemi tesislerine çevirmekten sorumludur. İşletim sisteminin yeni bir sürümü çıktığında, java sanal makinesini güncellemek satıcının sorumluluğundadır, böylece yeni işletim sisteminde doğru şekilde çalışır..
Java Sanal Makinesinin Avantajları Nelerdir??
Daha önce belirtildiği gibi, java sanal makinesi, işletim sisteminin ve donanımın uygulama programcısına sanal olarak görüntülenmesini sağlar. Bu sanal görünüm çeşitli arayüzler ve yöntemler şeklindedir ve uygulama programlayıcısını ana bilgisayar işletim sistemindeki ve temel donanımdaki farklılıklardan izole etmeye hizmet eder. Böylece, uygulama programcısı, programı taşınabilir hale getirmeyen düşük seviyeli çağrılara başvurmak zorunda kalmadan, Windows Araç Takımı, Ağ İletişimi, 3B grafikler, çoklu CPU'lar vb. Gibi olanaklara erişebilir..
Bir java programı yazılmıştır ve java derleyicisi kullanılarak derlenmiştir. Sonuç nesne kodu (denilen bayt kodu) farklı donanımlarda çalışan farklı bir ana bilgisayar işletim sistemine taşınabilir ve sorunsuz çalışması gerekir.
JIT Derleyicisi
Java sanal makinesi kullanır JIT derleyicisi Bayt kodunu özellikle hedef CPU için optimize etmek için. JIT anlamına gelir Tam zamanında ve JVM'nin geçerli CPU'da daha iyi çalışmasını sağlamak için bayt koduna uyguladığı çalışma zamanı optimizasyonlarını ifade eder..
Java Sanal Makinesi'ni kullanmanın diğer bir avantajı, her biri aynı bayt koduna sahip farklı kullanım durumları için farklı optimizasyonlar uygulayabilmesidir. Örneğin, Oracle JVM, bayt kodunu çalıştırmak için iki seçenek sunar: bir sunucu modu ve bir istemci modu. Sunucu modu uzun süre çalışan sunucu programları için optimize edilirken, istemci JVM modu, muhtemelen etkileşimli modda kullanıldığı için hızlı yanıt süreleri için optimize eder..
Özetlemek gerekirse, belirli bir donanım ve işletim sistemi için yerel bir uygulama oluşturulur. Diğer taraftan, bir java uygulaması Herhangi Bir Yere Çalıştırdıktan Sonra İnşa Et felsefe, bir JVM'nin derlenmiş bayt kodu talimatlarını çalıştırmasını sağlayarak. Yerel uygulamalar geleneksel olarak java uygulamalarından daha iyi performans gösterse de, JVM tarafından bir JIT derleyicisinin kullanılması nedeniyle her zaman doğru olmayabilir..
Yerel bir uygulama geliştirdiniz ve taşınabilirlik nedeniyle java'ya geçmek zorunda kaldınız mı? Ya da performans sorunları nedeniyle tersi? Aşağıdaki yorumlarda bize bildirin.
Image Credit: Shutterstock.com aracılığıyla Profit_Image