Oui à la première question et non à la deuxième question, c'est une machine virtuelle. Votre problème est probablement lié à l'quelconque des changements dans la mise en œuvre de bibliothèque entre les versions. Bien qu'il pourrait être, par exemple, une condition de course.
Il y a quelques cerceaux de la VM. Notamment des références sont traitées dans les fichiers de classe comme si ils ont pris le même espace que int
s sur la pile. double
et long
prendre jusqu'à deux fentes. Par exemple, les champs, il y a certains réarrangement de la VM va généralement par le biais de toute façon. Cela est fait (relativement) de manière transparente.
Aussi quelques 64 bits Jvm utiliser "compressé" loops". Parce que les données sont alignées à environ tous les 8 ou 16 octets, trois ou quatre bits de l'adresse sont inutiles (bien qu'une "marque" bit peut être volé pour certains algorithmes). Cela permet d'adressage de 32 bits de données (donc à l'aide de la moitié de la bande passante, et donc plus rapide) pour utiliser les tailles de tas de 35 ou 36 bits sur une plate-forme 64 bits.