Perché il seguente codice non genera un errore?Perché posso generare il char oltre il valore massimo?
System.out.println((char) 2147483647);
Secondo oracle datatypes, la dimensione massima per un char
è 65,535
.
- char: Il tipo di dati char è un singolo carattere Unicode a 16 bit. Ha un valore minimo di '\ u0000' (o 0) e un valore massimo di '\ uffff' (o 65.535 inclusi).
E cosa stampa? Non '2147483647'. Perchè no? C'è la tua risposta ... –
Fa una conversione restringimento, 2147483647 è un int, e lo stai restringendo per essere un char. Come hai detto, il valore massimo per char è 65535. Se fai un, System.out.println ((int) (char) 2147483647); , lo vedrai stampato 65535 non 2147483647. HTH –