İlan
Java'da programlama yaparken Java Sanal Makinesi (JVM) gerçek bir ad damlalığıdır. Adın aksine Java Sanal Makinesi diğer programlama dilleriyle de karşılaşılabilir.
Genel olarak, Java'da programlayabilmek için Java Sanal Makinesi'nin ne olduğunu ve hatta ne yaptığını bilmek gerekli değildir. Öte yandan, bir makinenin iç işleyişine aşina olmak, anlayışınızı ve genel anlayışınızı artırmanıza yardımcı olur.
Bu makale, Java Sanal Makinesi fikri, sizin için ne yaptığı ve en önemli artıları ve eksileri hakkında fırçalar. Her ne kadar basit tutmaya çalışsam da, konuyla ilgili kesinlikle daha gelişmiş literatür var, Java ve programlama hakkında temel bir anlayış bekleniyor.
Üst Düzey Diller
Bir programlama dilinin anlambilimi, doğal dilimize yakın olacak şekilde tasarlanırken, bir makine için özlü ve yorumlanması kolaydır. Muhtemelen bildiğiniz gibi, programlama dili bir bilgisayarın bir programı oluşturmak ve çalıştırmak için kullandığı talimatlar kümesi olan makine kodundan tamamen farklıdır. Buna biz diyoruz üst düzey diller; makine kodundan bir veya daha fazla soyutlama seviyesi.
Çalıştırmadan önce yüksek düzeyli kod yorumlanmalıdır. Birçok programlama arayüzü önceden derlenir (AOT derlemesi) belirli bir platform için. Bu, programı çalışma zamanında daha verimli hale getirir, ancak farklı platformlarla çok daha az uyumludur. Java ise tam tersine şu şekilde adlandırılır: Java bayt kodu ve Java Sanal Makinesi.
JVM ve Java Bayt Kodu
Java projeniz oluşturulduğunda, kaynak kodunu çevirir (*.java kaynak dosyaları) Java bayt koduna (çoğunlukla * .class dosyalarında bulunur). Bu, üst düzey kodunuzu makine koduna bir adım daha yaklaştırır, ancak henüz tam olarak orada değildir. Bu bayt kodu, kompakt talimatların bir koleksiyonudur; bir makinenin yorumlaması daha kolay, ancak daha az okunabilir.
Bilgisayarınızda, cep telefonunuzda veya herhangi bir Java etkin platformda bir Java uygulaması çalıştırdığınızda, bu Java bayt kodunu Java Sanal Makinesi'ne geçirirsiniz. Java Sanal Makinesi'ndeki yorumlayıcı, sözde ilkeleri takip ederek genellikle tüm bayt kodunu çalışma zamanında derlemeye başlar. tam zamanında derleme. Bu, bir Java uygulamasını açarken genellikle hafif bir gecikme olsa da, genellikle program performansını yorumlanmış derleme.
Bu sistemin ana avantajı artan uyumluluktur. Uygulamalarınız doğrudan donanımınız yerine sanal bir makinede çalıştığından, geliştirici programlayabilir ve Uygulamalarını bir kez oluşturun, bu da daha sonra her cihazda Java Virtual uygulamasıyla yürütülebilir Makine. Bu ilke Java sloganını doğurdu: “Bir kez yaz, her yerde koş.”
Pro: Uyumluluk ve Artırılmış Güvenlik
Kod uyumluluğu dışında, Java Sanal Makinesi diğer avantajlarla birlikte gelir. Bunlardan en önemlilerinden biri, Java Sanal Makinesi'nin bir sonucu olarak Java programlarının göreli güvenliğidir. Güvenlik, yani sanal bir makinede çalışan bir programın, kullanıcının işletim sistemini veya hata oluşursa veri dosyalarını bozma olasılığı daha düşüktür.
Con: Farklı JVM Uygulamaları ve Hata Ayıklama
Kod uyumluluğuna ve Java Sanal Makinesine karşı dile getirilen ana eleştirilerden biri, ikincisinin birçok farklı uygulamasından kaynaklanmaktadır. Java Sanal Makinesi tek bir yazılım parçası değildir. Java'nın sahibi olan Oracle, Java Sanal Makinesi'ni uygulamaktadır, ancak diğer insanlar çeşitli pratik ve sözleşmeye dayalı iddiaları yerine getirirse kendilerine ait olabilirler.
Bu farklı uygulamalar, kodunuzun bir Java Sanal Makinesi üzerinde sorunsuz çalışabileceği, ancak diğerinde çöküp yanabileceği anlamına gelir. Uygulamada, kodunuzu bir kez yazıp her yerde çalıştırabilseniz de, bazen daha karmaşık kodlar doğru çalışmayı sağlamak için hala farklı Java Sanal Makinesi uygulamalarında hata ayıklanmalıdır.
Java Sanal Makinesi ile çalışma deneyiminiz var mı? Eğer öyleyse, burada kaçırdığım bir şey var mı?
İmaj Kredisi: Michaelaw, Dcoetzee
Belçika'dan yazar ve bilgisayar bilimleri öğrencisiyim. Bana her zaman iyi bir makale fikri, kitap önerisi veya reçete fikri ile bir iyilik yapabilirsiniz.