İlk soruya evet, ikinci soruya hayır; bu sanal bir makinedir. Sorunlarınız muhtemelen, sürümler arasında kitaplık uygulamasındaki belirtilmemiş değişikliklerle ilgilidir. Diyelim ki bir yarış durumu olabilir.
VM'nin geçmesi gereken bazı çemberler var. Özellikle referanslar, sınıf dosyalarında int
, yığındaki s ile aynı alanı almışlar gibi ele alınır . double
ve long
iki referans yuvasını alın. Örneğin alanlar, sanal makinenin genellikle yine de geçtiği bazı yeniden düzenlemeler vardır. Bunların hepsi (nispeten) şeffaf bir şekilde yapılır.
Ayrıca bazı 64 bit JVM'ler "sıkıştırılmış hata" kullanır. Veriler her 8 veya 16 bayta bir hizalandığından, adresin üç veya dört biti işe yaramaz (bazı algoritmalar için bir "işaret" biti çalınabilir). Bu, 32 bit adres verilerinin (dolayısıyla bant genişliğinin yarısı kadar ve dolayısıyla daha hızlı) 64 bitlik bir platformda 35 veya 36 bit yığın boyutlarını kullanmasına izin verir.