共计 1383 个字符,预计需要花费 4 分钟才能阅读完成。
https://docs.oracle.com/en/ja…
Java 版本与 Unicode 版本对应关系
Java release | Unicode version |
Java SE 15 | Unicode 13.0 |
Java SE 13 | Unicode 12.1 |
Java SE 12 | Unicode 11.0 |
Java SE 11 | Unicode 10.0 |
Java SE 9 | Unicode 8.0 |
Java SE 8 | Unicode 6.2 |
Java SE 7 | Unicode 6.0 |
Java SE 5.0 | Unicode 4.0 |
Java SE 1.4 | Unicode 3.0 |
JDK 1.1 | Unicode 2.0 |
JDK 1.0.2 | Unicode 1.1.5 |
Unicode 一致性
char 类型以及封装类 java.lang.Character 的字段和办法是依据 Unicode 规范中的字符信息定义的,特地是作为 Unicode 字符数据库一部分的 UnicodeData 文件。此文件为每个调配的 Unicode 代码点或字符范畴指定属性,包含名称和类别。该文件可从 Unicode 联盟 http://www.unicode.org 取得。
Unicode 字符示意
char 数据类型(以及对象封装的值)Character 基于原始 Unicode 标准,该标准将字符定义为固定宽度的 16 位实体。尔后,Unicode 规范已更改为容许示意须要超过 16 位的字符。非法码点的范畴当初是 U+0000 到 U+10FFFF,称为 Unicode scalar value。(请参阅 Unicode 规范中 U+ n 符号 的 定义。)
从 U+0000 到 U+FFFF 的字符集有时称为根本多语言立体 (BMP)。码位大于 U+FFFF 的字符称为补充字符。Java 平台在 char 数组和 String 和 StringBuffer 类中应用 UTF-16 示意。在此示意中,补充字符示意为 一对 char 值,第一个来自高代理(high-surrogates)范畴 (\uD800-\uDBFF),第二个来自 低代理(low-surrogates)范畴 (\uDC00-\uDFFF)。
因而,一个 char 值示意根本多语言立体 (BMP – Basic Multilingual Plane) 代码点,包含代理代码点或 UTF-16 编码的代码单元。一个 int 值示意所有 Unicode 代码点,包含补充代码点。用整型 int 的低 21 位示意 Unicode 代码点,高 11 位必须为零。除非另有阐明,否则对于补充字符和代理 char 值的行为如下:
- 只承受 char 值的办法不反对补充字符。它们将 char 代理范畴中的值视为未定义的字符。例如,Character.isLetter(‘\uD840’)返回 false,即便此特定值后跟字符串中的任何低代理值将代表一个字母。
- 承受 int 值的办法反对所有 Unicode 字符,包含补充字符。例如,Character.isLetter(0x2F81A)返回 true 是因为代码点值示意一个字母(CJK 表意文字)。
在 Java SE API 文档中,Unicode 代码点(Unicode code point)用于 U+0000 到 U+10FFFF 范畴内的字符值,Unicode 代码单元(Unicode code unit)用于 UTF-16 编码 char 的代码单元的 16 位值。无关 Unicode 术语的更多信息,请参阅 Unicode 词汇表。
总结
看完以上文档,你能答复题目的问题了吗?
欢送在评论里写下你的答案