Ja zur ersten Frage und nein zur zweiten Frage; Es ist eine virtuelle Maschine. Ihre Probleme beziehen sich wahrscheinlich auf nicht spezifizierte Änderungen in der Bibliotheksimplementierung zwischen Versionen. Obwohl es sich beispielsweise um eine Race Condition handeln könnte.
Es gibt einige Reifen, die die VM durchlaufen muss. Bemerkenswerterweise werden Verweise in Klassendateien behandelt, als ob sie den gleichen Platz wie int
s auf dem Stapel einnehmen würden. double
und long
nehmen zwei Referenzsteckplätze auf. Zum Beispiel Felder, es gibt einige Umlagerungen, die die VM normalerweise durchläuft. Dies ist alles (relativ) transparent.
Auch einige 64-Bit-JVMs verwenden "komprimierte Oops". Da Daten auf etwa alle 8 oder 16 Bytes ausgerichtet sind, sind drei oder vier Bits der Adresse nutzlos (obwohl ein "Mark" -Bit für einige Algorithmen gestohlen werden kann). Dies ermöglicht 32-Bit-Adressdaten (daher mit halb so viel Bandbreite und daher schneller), Heap-Größen von 35 oder 36 Bits auf einer 64-Bit-Plattform zu verwenden.
bitte klären Sie "Probleme". –
Ich habe ein ähnliches Problem - Bereitstellung einer Spring-App auf einem 64-Bit-Weblogic-Server. Wir erhalten verschiedene nicht gefundene Ausnahmen und andere nicht hilfreiche Fehler. Darüber hinaus wird es auf einigen 64-Bit-Computern bereitgestellt und ausgeführt, jedoch nicht auf anderen. Wir können jedoch nicht sagen, was anders ist. Hast du das gelöst? – nont
@nont - was auch immer das Problem ist, ist es nicht 32VS64 Bit Compilation. –