pourquoi il n’y a pas de taille en java

Pour quelle raison de conception, il n’y a pas d’opérateur sizeof en Java? sachant que c’est très utile en c ++ et c # et comment vous pouvez obtenir la taille d’un certain type si nécessaire?

Parce que la taille des types primitifs est explicitement requirejse par le langage Java. Il n’y a pas de différence entre les implémentations JVM.

De plus, l’atsortingbution étant faite par le new opérateur en fonction de son argument, il n’est pas nécessaire de spécifier la quantité de mémoire nécessaire.

Il serait bien parfois parfois utile de connaître la quantité de mémoire nécessaire à un object pour pouvoir estimer des exigences telles que la taille maximale requirejse pour le tas, mais je suppose que les concepteurs de la plate-forme Java / Platform ne pensaient pas que c’était un aspect critique.

En c n’est utile que parce que vous devez allouer et libérer de la mémoire manuellement. Cependant, étant donné qu’il existe une collecte automatique des déchets dans Java, cela n’est pas nécessaire.

En Java, vous ne travaillez pas directement avec la mémoire. Par conséquent, sizeof n’est généralement pas nécessaire. Si vous souhaitez toujours déterminer la taille d’un object, consultez cette question .

La gestion de la mémoire est effectuée par la machine virtuelle Java. Cela pourrait peut-être vous aider: http://www.javamex.com/java_equivalents/memory_management.shtml

C avait besoin de sizeof car la taille de ints et de long varie en fonction du système d’exploitation et du compilateur. Ou du moins c’était le cas. 🙂 En Java, toutes les tailles, les configurations de bits (par exemple IEEE 754) sont mieux définies.

EDIT – Je vois que @Maerics a fourni un lien vers les spécifications Java dans sa réponse.