Maison > Questions et réponses > le corps du texte
看到书里有这么一段话:
一个Integer对象会使用24字节,其中分别是:
16字节的对象开销
4字节用于保存它的int值
4个填充字节
我想请教的是:
什么对象开销?16字节里面究竟存储着什么?
填充字节又是什么?它里面存储着什么?
ringa_lee2017-04-18 09:57:50
16 octets correspondent à Object Header
, y compris Mark word
, Class
informations de type... (16 octets correspond à la taille sur un système 64 bits et la compression du pointeur n'est pas activée)
L'alignement de HotSpot est un alignement sur 8 octets. Tous les objets dont la taille finale n'est pas un multiple de 8 octets seront remplis
PHP中文网2017-04-18 09:57:50
La surcharge de l'objet contient les informations de base de l'objet ; les octets de remplissage sont utilisés pour remplir le nombre d'octets. Les octets occupés par l'objet doivent être un multiple de 8 octets.
大家讲道理2017-04-18 09:57:50
Ce qui suit n'est qu'une supposition irresponsable :
Integer hérite d'Object. Lors de la construction d'Integer, vous devez d'abord construire Object. La surcharge de l'objet est la surcharge de la construction d'Object à ce moment-là. . Les sections sont des références d'objets, mais l'allocation d'octets en Java se fait par unités de 8, donc 16 octets sont utilisés ici, et les octets inutiles sont appelés octets de remplissage.
Les octets de remplissage ci-dessous sont les mêmes.