「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。
字符型(char)
char原本用于表示单个字符,现在可能表示为多个。因为现在在java中使用的是Unicode编码描述了UTF-16的一个代码单元,不过在Unicode中,也兼容了我们平常使用的ASII编码。我们在进行char类型运算时可以直接当做ASCII表对应的整数来对待。最好不要使用char类型在java程序中。有些Unicode字符可以使用一个char值表示,有的需要两个。char字符需要用单引号括起来。char的值可以用十六进制表示,范围在\u0000到\uFFFF。还有表示特殊字符的转义序列。
如下表:
| 转义序列 | 名称 | Unicode值 |
|---|---|---|
| \b | 退格 | \u0008 |
| \t | 制表 | \u0009 |
| \n | 换行 | \u000a |
| \r | 回车 | \u000d |
Unicode编码
Unicode编码的设计初衷是为了解决不同编码下的不同字符使用单字符编码,或者多字符编码问题。统一使用两个字节来表示字符。但是后来发现两个字节还是不过描述所有的Unicode字符了。这也是为什么不建议在java程序中使用char类型的原因之一。
下面介绍几个基本概念:
码点:指一个编码表中某一个字符对应的代码值,在Unicode编码标准中为十六进制数加前缀'U+'表示。比如:U+0041表示’A‘.
代码平面:在Unicode标准中一共存在17个代码平面,第一个代码平面为基本多语言平面,包括码点U+0000到U+FFFF的Unicode代码。其他16个平面为从U+10000到U+10FFFF,包括辅助字符。
代码单元:在基本多语言平面上,每个字符用16位表示。这种UTF-16编码为代码单元。辅助字符编码是一对连续的代码单元,在基本多语言平面未使用的2048个值的范围内,被称为代替区域。
布尔类型(boolean)
只有两个值false或者true用来判定真假。