İlan

Şu anda bir sonraki uygulamanız için java mı yoksa yerel araç kitleri ve çerçeveler mi kullanacağınızı mı tartışıyorsunuz? Java'nın bir uygulama için yerel programlamaya göre ne gibi avantajları olduğunu bilmek ister misiniz? Öğrenmek için okumaya devam edin!

Yerel Uygulama Nedir?

Yerel bir uygulama, özellikle bir işletim sistemi (OS) ve muhtemelen bu işletim sistemini çalıştıran belirli bir 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 formuna derlenir ve daha sonra gerekli kütüphaneler bağlanarak yürütülebilir dosyaya birleştirilir. Bu şekilde oluşturulan bir program, oluşturulduğu belirli donanım ve işletim sisteminde çalışır, ancak diğer sistemlerde düzgün çalışmayabilir.

Yerel Olarak Yürütülebilir Bir Hazırlama

Yerel Uygulamalar Neden Taşınabilir Değil?

C / C ++ gibi bir dil için derleyici, kaynak kod ifadelerini hedeflenen CPU için makine diline çevirir. Bu kodu farklı bir CPU'da çalıştırmayı denediğinizde, derlenmiş koddaki makine dili yönergeleri bu CPU tarafından desteklenmeyebileceğinden program düzgün çalışmayabilir (veya hiç çalışmayabilir).

instagram viewer

Ayrıca, yeni işletim sistemi orijinal sistemden farklı olabilir ve program dosyasını yürütülebilir olarak bile tanımayabilir. Bunun nedeni, farklı işletim sistemlerindeki (Windows, Linux, MacOS vb.) Yürütülebilir dosyalar için kullanılan farklı dosya biçimlerinden kaynaklanmaktadır.

Taşınabilirlik, derleyiciyi bir sonraki sürüme yükseltmek için yerel uygulamalarda böyle büyük bir sorundur. Daha yeni derleyiciyle çalışmak için kodunuzun düzeltilmesi gerekebilir. Bu nedenle, kaynak kodun bilinen kodla sıçraması ifdef donanıma, işletim sistemine veya derleyiciye özgü geçici çözümleri yalıtmak için kullanılan deyimler yaygındır.

Aşağıdaki küçük bir kod snippet'idir BZLib sıkıştırma kütüphanesi kullanımını gösteren ifdefplatform özelliklerini izole etmek için:

#ifdef _WIN32. # Dahil etmek # ifdef small / * windows.h küçük karakterden char * / # undef küçük. # endif. # ifdef BZ_EXPORT. # define BZ_API (fonk) WINAPI fonk. # BZ_EXTERN extern'i tanımlayın. # else / * pencereleri dinamik olarak içe aktar * / # define BZ_API (işlev) (WINAPI * işlev) # define BZ_EXTERN. # endif. #Başka. # define BZ_API (fonk) fonk. # BZ_EXTERN extern'i tanımlayın. #endif.

İşletim Sistemlerinde Kaynak Kodu Taşınabilirliği

Bu durum, C / C ++ kaynak kodunu yeni CPU'ya yeniden derleyerek bir dereceye kadar hafifletilebilir. Ancak, yeni CPU'nun işletim sistemi farklı olabilir. Ve kaynak kodu büyük veya küçük değişiklikler olmadan derlenmeyebilir. İşletim sistemi sürümlerindeki küçük değişiklikler bile bazı kaynak kodu değişiklikleri 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 yalıtan bir araç takımı veya çerçeve kullanmadığınız sürece, kaynak kodu taşınabilirliği imkansızdır. Bunun nedeni, işletim sistemi arabiriminin 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 çeşitli işletim sistemlerinde taşınabilir olmayacaktır.

Java Nasıl Farklı?

Bu senaryoda java yeni bir paradigma, yeni bir yazılım geliştirme yöntemi sunar. Java'da programlama yaparken, sanal makine. Böyle bir makine bir kavram olarak mevcuttur ve java dili bu makineye karşı programlama için arayüzler sağlar. Örneğin, sanal makinenin kullanılabilir bellek miktarını, CPU sayısını, ağ arabirimlerini vb. Sorgulayabilirsiniz.

Sanal Makine Yürütme Kodu

Java Uygulamaları Nasıl Oluşturulur?

Java dili, kaynak kodunu nesne koduna çeviren bir java derleyicisi sağlar. Nesne kodu daha sonra java sanal makine, derleyiciden ayrı bir programdır. İşletim sistemi, sırayla, java sanal makinesini bu işletim sisteminde çalışan başka bir program olarak görür.

Taşınabilirlik yükü artık uygulama programcısından java sanal makine satıcısına taşındı. Uygulama programcısı yazılımı java dilinin ilkelerini ve java'yı kullanarak yazar sanal makine bu ilkelleri ana bilgisayar işletim sistemine çevirmekten sorumludur tesisleri. İşletim sisteminin yeni bir sürümü çıktığında, java sanal makinesini yeni işletim sisteminde düzgün çalışması için güncellemek satıcının sorumluluğundadır.

Java Programları Oluşturma

Java Sanal Makinesinin Avantajları Nelerdir?

Daha önce de belirtildiği gibi, java sanal makinesi, uygulama programcısına işletim sisteminin ve donanımın sanal bir görünümünü sağlar. Bu sanal görünüm, çeşitli arayüzler ve yöntemler şeklindedir ve uygulama programlayıcısını ana işletim sistemi ve temel donanımdaki farklılıklardan ayırmaya yarar. Böylece, uygulama programcısı bir Pencere Araç Seti, Ağ, 3D grafikler, birden fazla CPU vb. programı taşınabilir olmayan hale getiren düşük seviyeli çağrılara başvurmak zorunda kalmadan.

Bir java programı yazılır ve java derleyicisi kullanılarak derlenir. Sonuçta elde edilen nesne kodu (çağrılan bayt kodu), farklı donanımlarda çalışan farklı bir ana bilgisayar işletim sistemine taşınabilir ve sorunsuz çalışmalıdır.

JIT Derleyici

Java sanal makinesi bir JIT derleyici bayt kodunu özellikle hedef CPU için optimize etmek. JIT, 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 kullanmanın bir başka avantajı, hepsi 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 en iyi duruma getirilirken, istemci JVM modu, etkileşimli modda kullanıldığından hızlı yanıt süreleri için en iyi duruma getirir.

Özetlemek gerekirse, belirli bir donanım ve işletim sistemi için yerel bir uygulama oluşturulmuştur. Java uygulaması ise Bir Kez Oluşturun Her Yerde Çalışın Felsefe, bir JVM'nin derlenmiş bayt kodu talimatlarını çalıştırmasını sağlayarak. Yerel uygulamalar geleneksel olarak java uygulamalarından daha performanslı olarak görülse 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 tam tersi? Aşağıdaki yorumlarda bize bildirin.

Görüntü Kredisi: Shutterstock.com aracılığıyla Profit_Image