Java Sanal Makinesi (JVM), Java programlarını çalıştıran bir ortamdır. Java programları, JVM'nin yürüttüğü bytecode adı verilen bir ara dilde derlenir. Bayt koduna derlenen herhangi bir program, üzerinde bir JVM kurulu olan herhangi bir platformda çalıştırılabilir. Bu, Java yazılımını birçok farklı bilgi işlem platformuyla uyumlu hale getirir. JVM'nin, herhangi bir geliştiricinin Java geliştirmeye yatırım yapmadan önce dikkatlice tartması gereken birkaç önemli avantajı ve dezavantajı vardır.
Platform Bağımsızlığı
Java bayt kodu bir kez yazılabilir ve ardından birden çok platformda çalıştırılabilir. Java bayt kodunun, Java Sanal Makinesinde çalıştığı için belirli bir donanım ortamına taşınması gerekmez. Java bayt kodunda derlenen herhangi bir uygulama, Java Sanal Makinesi olan herhangi bir bilgi işlem platformunda çalıştırılabilir.
Günün Videosu
Güvenlik
Java, güvenlik göz önünde bulundurularak yazılmıştır. Java Sanal Makinesi, programcıların son derece güvenli Java programları yazmasına olanak tanıyan yerleşik güvenlik özelliklerine sahiptir. Java uygulamalarının İşletim Sistemi kaynaklarıyla etkileşime girmesini engellediği için kötü amaçlı yazılımların İşletim Sistemini (OS) tehlikeye atmasını da önler.
Verim
Java Sanal Makinesinde çalışan Java programları, C++ ile yazılmış eşdeğer programlardan daha yavaş çalışma eğilimindedir. Bayt kodunun sistem tarafsızlığı, performans söz konusu olduğunda bir dezavantaj görevi görür. Bunun nedeni, kod optimizasyonunun büyük ölçüde sisteme özgü özelliklere dayanmasıdır. Java bayt kodu sistemden bağımsız olduğundan, belirli bir donanım seti için optimize edilemez.
doğruluk
Beklendiği gibi performans gösteren bir programın doğru olduğu söylenir. Bir Java programı, onu yürütmek için Java Sanal Makinesine bağlı olduğundan, programın doğru çalışması için JVM'nin hatasız olması gerekir. Java Sanal Makinesine olan bu güven, program için olası bir hata noktası ortaya çıkarır. Neyse ki Java Virtual Machine yazılımı çok yüksek standartlarda üretiliyor ve bu nedenle herhangi bir hata ile gönderilme olasılığı yok. Ne olursa olsun, Java Sanal Makinesi'ndeki bir arıza, dikkate alınması gereken bir olasılıktır.