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!