char是Java中占2字节的无符号整数型基本类型,取值范围为\u0000~\uFFFF(0~65535),用单引号赋值,支持字符字面量、Unicode转义、数值及转义字符;可与int互转,常用于大小写转换和Character工具类操作。

Java 中的 char 是一种基本数据类型,专门用来表示单个字符,占 2 个字节(16 位),取值范围是 Unicode 编码的 \u0000 到 \uFFFF(即 0~65535)。它本质是无符号整数,所以既能当字符用,也能当数字用。
char 的常见赋值方式
必须用英文单引号包裹,且只能是一个字符(包括中文、标点、字母、数字等):
-
直接字符字面量:如
char c = 'A';、char ch = '中'; -
Unicode 转义序列:以
\u开头 + 4 位十六进制数,如char pi = '\u03C0';(π)、char tm = '\u2122';(™) -
ASCII/Unicode 数值:利用其整数本质,如
char c = 65;等价于'A',char d = 0x41;也一样 -
转义字符:如
'\n'(换行)、'\t'(制表)、'\\'(反斜杠)、'\''(单引号)、'\"'(双引号)
char 和整数之间的互转
因为 char 底层就是 16 位无符号整数,转换非常自然:
- 字符 → 整数:直接赋值,如
int code = 'a';→ 得到 97 - 整数 → 字符:需强制类型转换,如
char c = (char)97;→ 得到 'a' - 大小写转换可基于 ASCII 差值:小写变大写 →
(char)(c - 32);大写变小写 →(char)(c + 32)(仅限英文字母)
char 的使用注意事项
容易出错的地方要特别留心:
立即学习“Java免费学习笔记(深入)”;
- 不能用双引号,
"a"是字符串,不是 char,char x = "a";编译报错 - 不能为空,
char c = '';不合法;也不能放多个字符,'ab'或'\n\t'都不行 - Unicode 转义(
\uXXXX)在代码解析阶段就被处理,所以不能出现在注释里,否则可能破坏语法 - 中文字符完全支持,比如
char c = '李';合法,对应 Unicode 码如\u674E
和其他类型的配合使用
单独的 char 不能拼接,但可以参与字符串构建或工具类操作:
- 转成字符串:
String s = String.valueOf('X');或String s = Character.toString('X'); - 判断属性:
Character.isLetter('8')返回 false,Character.isDigit('8')返回 true - 大小写转换:
Character.toUpperCase('k')→ 'K',比手动加减更安全(兼容非 ASCII 字符) - 比较两个 char:
char a = 'm', b = 'M'; System.out.println(a == b);→ false(区分大小写)
基本上就这些。char 看似简单,但理解它“既是字符又是数”的双重身份,才能用得稳、转得准、避得开坑。











