I was playing around with the following code and found the result very surprising.
char e12 = -12; //illegal assigning an int to a char. required char ==> OK
char e12 = (char) -12; //COMPILED
System.out.println("e12=" + e12);
Out of inqusitiveness i changed the values of char to -1, -2, -12, -13. In all the cases the o/p produced was ?.
Please explain why the same o/p for different values of char.