Sì alla prima domanda e no alla seconda domanda; è una macchina virtuale. I tuoi problemi sono probabilmente correlati a modifiche non specificate dell'implementazione della libreria tra le versioni. Anche se potrebbe essere, ad esempio, una condizione di gara.
Ci sono alcuni cerchi che la VM deve attraversare. In particolare i riferimenti sono trattati in file di classe come se occupassero lo stesso spazio di int
s nello stack. double
e long
occupano due slot di riferimento. Per esempio campi, c'è qualche riarrangiamento che la VM di solito passa comunque. Tutto ciò è fatto (relativamente) in modo trasparente.
Anche alcune JVM a 64 bit usano "compresse oops". Poiché i dati sono allineati a circa 8 o 16 byte, tre o quattro bit dell'indirizzo sono inutili (sebbene un bit "mark" possa essere rubato per alcuni algoritmi). Ciò consente dati di indirizzo a 32 bit (quindi utilizzando metà della larghezza di banda, e quindi più veloce) per utilizzare dimensioni heap di 35 o 36 bit su una piattaforma a 64 bit.
fonte
2009-04-23 21:52:03
chiarire "problemi". –
Sto riscontrando un problema simile: distribuzione di un'app di primavera sul server weblogic a 64 bit. Riceviamo varie eccezioni di classe non trovata e altri errori inutili. Inoltre, distribuisce ed esegue su alcune macchine a 64 bit, ma non su altre. Non possiamo tuttavia dire cosa è diverso. Hai risolto questo? – nont
@nont - qualunque sia il problema, non è la compilazione 32vs64 bit. –