When your line System.out.println((a>b)?'a':65);//A is executed, JVM sees that your condition is false, so it will output 65. Now, you have provided 'a' as first possible output, 65 will be converted to char and 'A' will be returned, which has ASCII value 65.