Java 32位與64位兼容性Java代碼是否可以在32位JDK中構(gòu)建和編譯成32位字節(jié)代碼,在64位JVM中工作?或者64位JVM是否需要64位字節(jié)代碼?為了提供更多細(xì)節(jié),我的代碼在運行32位JVM的Solaris環(huán)境中工作,但現(xiàn)在我在將JDK和Weblogic Server升級到64位后遇到問題。
3 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗 獲得超3個贊
第一個問題是,第二個問題不是; 它是一個虛擬機。您的問題可能與版本之間的庫實現(xiàn)中未指定的更改有關(guān)。雖然可能是比賽條件。
VM必須經(jīng)歷一些箍。值得注意的是,引用在類文件中被視為int
與堆棧中的s 占用相同的空間。double
并long
占用兩個參考位置。例如字段,VM通常會經(jīng)歷一些重新排列。這一切都是(相對)透明地完成的。
一些64位JVM也使用“壓縮oops”。因為數(shù)據(jù)大約每8或16個字節(jié)對齊,所以地址的3或4位是無用的(盡管某些算法可能會竊取“標(biāo)記”位)。這允許32位地址數(shù)據(jù)(因此使用一半的帶寬,因此更快)在64位平臺上使用35或36位的堆大小。
添加回答
舉報
0/150
提交
取消