You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Java中char d = 'a' + 3;输出结果为'd'的疑问求解

为什么char d = 'a' + 3;执行System.out.println(d)输出'd'而非数值

这是Java的类型转换和方法重载机制共同作用的结果,拆解来看:

  1. char类型的本质
    Java里的char是16位无符号整数类型,对应UTF-16编码的字符码点。比如字符'a'对应的十进制码点是97,'d'是100。

  2. 运算时的自动类型提升
    当char类型和整数(这里的3是int类型)做加法时,char会被自动提升为int类型参与计算。所以'a' + 3实际是97 + 3 = 100,得到的结果是int类型的100。

  3. 赋值时的窄化转换
    把int类型的100赋值给char变量d时,因为100在char的取值范围(0到65535)内,Java会自动执行窄化转换,将int值转换为对应的char字符——也就是码点100对应的'd'。

  4. println方法的重载行为
    System.out.println()有专门处理char类型的重载方法,当传入char参数时,它会直接输出该字符对应的Unicode符号,而不是转换为数值。如果想输出对应的数值,需要手动强制转换为int:

System.out.println((int)d); // 输出100

内容的提问来源于stack exchange,提问作者Julia Tran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:42:04