2014-09-14 4 views

risposta

8

In JVM due numeri interi uguali tra -128 e 127 sono sempre identici, poiché mantiene IntegerCache.

Significa che due numeri interi uguali tra -128 e 127 sono sempre la stessa istanza della classe Integer.

Provate a confrontare diversi numeri interi:

(identical? 4 (+ 2 2)) ; true 
(identical? 127 127) ; true 
(identical? 128 128) ; false 

Vedi this answer on Code Golf per maggiori informazioni.

+0

grazie, perché la JVM esegue questa operazione solo per il primo byte? (cioè da -128 a 127)? – Zuriar

+0

Si basa sul presupposto che i valori piccoli si verificano molto più spesso di altri numeri interi, quindi ha senso memorizzarli nella cache. –

Problemi correlati