Maison > Java > javaDidacticiel > Pourquoi les objets Integer Wrapper de Java sont-ils partagés uniquement entre -128 et 127 ?

Pourquoi les objets Integer Wrapper de Java sont-ils partagés uniquement entre -128 et 127 ?

Mary-Kate Olsen
Libérer: 2024-11-26 14:54:09
original
573 Les gens l'ont consulté

Why are Java's Integer Wrapper Objects Shared Only Between -128 and 127?

Objets wrapper entiers : instances partagées dans la plage de -128 à 127

Les objets wrapper de Java fournissent un pont crucial entre les types de données primitifs et les objets. Cependant, un comportement particulier a été observé dans le boxing des valeurs entières : les instances semblent être partagées uniquement dans la plage de -128 à 127.

Considérez le code suivant :

Integer integer1 = 127;
Integer integer2 = 127;
System.out.println(integer1 == integer2);  // outputs "true"
Copier après la connexion

Dans ce cas, entier1 et entier2 se voient attribuer la même instance, comme en témoigne la sortie « vrai » lors de leur comparaison avec ==. Cependant, un comportement différent apparaît lorsque les valeurs dépassent cette plage :

Integer integer1 = 128;
Integer integer2 = 128;
System.out.println(integer1 == integer2);  // outputs "false"
Copier après la connexion

Pourquoi ce phénomène se produit-il ?

Selon la spécification du langage Java (JLS), il est spécifiquement indiqué que "Certaines valeurs communes sont toujours enfermées dans des objets indiscernables." Cette plage est définie comme "un octet, ou un caractère compris entre u0000 et u007f, ou un nombre entier ou court compris entre -128 et 127 (inclus)".

La justification de ce comportement, comme expliqué dans le JLS, est de « garantir que dans les cas les plus courants, le comportement sera celui souhaité, sans imposer une pénalité indue en termes de performances, en particulier sur les petits appareils ». En limitant le comportement de l'instance partagée à une plage de valeurs commune, Java établit un équilibre entre les performances et le comportement attendu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal