Visualizza messaggio singolo
Vecchio 03-04-2008, 12.24.58   #1
shadowDK
Senior Member
 
Registrato: 21-03-2008
Loc.: From Lugano (CH)...finally!
Messaggi: 330
shadowDK promette bene
Integer Java (SE 1.5 e 1.6) - anomalia (o no?)

Ciao a tutti...questo è un comportamento forse anomalo di queste due versioni di Java (fino alla 1.4 credo che un assegnamento del genere generasse un compile error)

public class Prova{
public static void main(String[] args){
Integer a1=128;
Integer a2=128;
/*1*/System.out.println(a1==a2);
/*2*/System.out.println(a1);
/*3*/System.out.println(a2);
}}

/*1*/ stampa true se a1 e a2 sono entrambi inizializzati a valori compresi tra -128 e 127 (caso strano, 256 valori, quelli ottenibili da un byte) false per valori esterni, ossia per valori minori di -128 e maggiori di 127...

qualcuno ha qualche idea della motivazione?

in aggiunta, dico che /*2*/ e /*3*/ stampano SEMPRE il valore inserito in dichiarazione, qualunque esso sia...

grazie!
shadowDK non è collegato   Rispondi citando