Sur une machine 64 bits, la taille d’un int est-elle en Java 32 bits ou 64 bits?

Sur une machine 64 bits, la taille d’un int est-elle en Java 32 bits ou 64 bits?

32 bits. C’est l’une des fonctionnalités du langage Java dont la taille ne varie pas avec l’ordinateur sous-jacent. Voir la section correspondante de la spécification .

La taille des données primitives fait partie de la spécification de la machine virtuelle et ne change pas. Ce qui va changer, c’est la taille des références d’object, de 32 bits à 64. Ainsi, le même programme nécessitera plus de mémoire sur une JVM 64 bits. L’impact dépend de votre application, mais peut être important.

Si vous voulez un entier 64 bits, utilisez un long.

32 bits. Java est conçu pour être exécuté de la même manière quelle que soit la machine ou le système d’exploitation sur lequel il est exécuté, et cela est certainement vrai pour les types de données primitifs, au moins.

C’est l’une des conséquences du slogan “comstackr une fois, exécuter n’importe où”: l’exécution de Java est indépendante de la taille du mot et de l’endian-hardware sous-jacents; la JVM fonctionne partout de la même manière.

Cette garantie d’indépendance fonctionne beaucoup mieux que la tentative d’abstraire l’OS 😉

Oui, c’est 32 bits

Un autre point généralement mal compris est le fait que la taille de ces types de données sera toujours la même quelle que soit l’architecture de notre programme. Vous pouvez donc exécuter votre programme sur une machine 64 bits, mais un int va toujours être long de 32 bits, donc il aura la même plage. Cela est vrai à la fois pour C # et Java.

Voici un article complet sur le sujet:

Types de données intégrales en Java et C #.