java中char类型用单引号表示16位无符号unicode码点,支持标准字符、8种转义序列(如' ')和u四位十六进制unicode转义(如'u4f60'),不支持双引号、多字符、负值及代理对。

Java 中 char 类型用单引号括起的单个字符来表示,本质是 16 位无符号整数,直接对应 Unicode 码点(BMP 平面内)。
标准字符字面量
最常见写法:用单引号包裹一个可见或不可见字符。
-
char c1 = 'A';→ 拉丁大写字母 A(U+0041) -
char c2 = '中';→ 汉字“中”(U+4E2D) -
char c3 = '€';→ 欧元符号(U+20AC) -
char c4 = ' ';→ 空格字符(U+0020)
转义序列表示特殊控制符
无法直接输入的字符(如换行、制表等),用反斜杠加特定字母表示,共 8 种预定义形式:
-
' '换行 -
' '制表符 -
' '回车 -
'\'反斜杠本身 -
'''单引号 -
'"'双引号(注意:这不是字符串,只是 char 字面量中嵌入双引号) -
''退格 -
''换页
⚠️ 不支持自定义转义序列,例如 '' 会编译报错。
Unicode 转义表示法
用 u 开头 + 四位十六进制数字,精确指定任意 BMP 字符:
-
char c = 'u4F60';→ “你”(U+4F60) -
char heart = 'u2665';→ ♥(U+2665) -
char nullChar = 'u0000';→ 空字符(不是null)
这种写法在需要明确编码、避免源文件编码歧义或处理不可见字符时很实用。
注意边界与常见错误
以下写法均不合法:
-
char c = "A";→ 双引号是字符串,类型不匹配 -
char c = 'AB';→ 单引号内只能有一个字符(或一个转义/Unicode 序列) -
char c = -1;→char是无符号类型,不能赋负值 -
char c = 'uD83DuDE00';→ 这是两个 char,不能直接赋给一个 char 变量(emoji ? 需用String或代理对处理)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











