public class{
@Test
public void test5() {
int i = 99;
System.out.println("3.0的判断结果:" + (true ? 1 : 3.0)); // 1.0
System.out.println("-1判断结果 :" + (true ? 'a' : -1)); // 97
System.out.println("0判断结果 :" + (true ? 'a' : 0)); // a
System.out.println("65535判断结果:" + (true ? 'a' : 65535)); // a
System.out.println("65536判断结果:" + (true ? 'a' : 65536)); // 97
System.out.println("i判断结果 :" + (true ? 'a' : i)); // 97
}
}
运行结果:
我总结了一些结论,希望对你能有帮助,
char类型长度是两个字节,占16位,所以2^16 = 65536 ,大于或等于这个值或者小于0时,就输出 int 类型,反之就输出char 类型 ,当表达式中出现变量时会输出 int 类型。其他类型的转换遵循类型提升规律。