Maison >Java >javaDidacticiel >Pourquoi Java met-il en cache les entiers uniquement entre -128 et 127 ?
Pourquoi la classe Integer met en cache les valeurs comprises entre -128 et 127 ?
Concernant une question précédente, il a été établi que la classe Integer met en cache les valeurs entre - 128 et 127. Cela a incité à se demander pourquoi cette gamme spécifique a été choisie.
Le Java La spécification du langage (JLS) impose la mise en cache des entiers compris entre -128 et 127. La logique est de garantir que le boxing de ces valeurs produit toujours des références identiques, garantissant ainsi l'indiscernabilité pour les cas courants. Cela favorise les performances sans imposer une surcharge de mémoire excessive, en particulier sur les appareils aux ressources limitées.
Demande fréquente de valeurs comprises entre -128 et 127
Le choix de la plage peut être attribué à l'hypothèse selon laquelle les entiers dans cet intervalle sont couramment utilisés. Bien que la subjectivité existe, certains facteurs peuvent étayer cette hypothèse :
Mise en cache d'autres valeurs en dehors de la plage
Pendant que JLS impose la mise en cache pour la plage -128 à 127, la documentation suggère que d'autres valeurs peuvent également être mises en cache. Ceci est configurable via l’option JVM -XX:AutoBoxCacheMax. Elle permet aux développeurs de spécifier le nombre maximum de valeurs mises en cache en dehors de la plage obligatoire, offrant ainsi une flexibilité aux applications qui nécessitent un boxing efficace pour une plage spécifique d'entiers.
Cependant, il est important de noter que cette option est spécifique à l'implémentation. et peut ne pas être disponible sur toutes les JVM.
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!