196 votes

Pourquoi 128==128 est-il faux alors que 127==127 est vrai lorsque l’on compare des wrappers Entiers en Java ?

<pre><code></code><p>Sortie:</p><pre><code></code></pre><hr><pre><code></code></pre><p>Sortie:</p><pre><code></code></pre><p>Remarque : Les nombres compris entre -128 et 127 sont vrais.</p></pre>

8voto

Willmore Points 2404

C’est lié à l’optimisation de la mémoire en Java.

Pour économiser de la mémoire, Java « réutilise » tous les objets wrapper dont les valeurs se situent dans les fourchettes suivantes :

Toutes les valeurs booléennes (true et false)

Toutes les valeurs d’octet

Toutes les valeurs de caractère de \u0000 à \u007f (c’est-à-dire de 0 à 127 en décimal)

Toutes les valeurs courtes et entières comprises entre -128 et 127.

4voto

yanghaogn Points 3

Jetez un coup d’œil à l’entier.java, si la valeur est comprise entre -128 et 127, il utilisera le pool mis en cache, donc pendant que

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X