简单来说,代码单元就是用来表示代码点的。char数据类型就是一个采用UTF-16编码表示Unicode码点的代码单元。
那代码点是什么?
就是在unicode编码中的每一个符号。
在特殊符号没出现之前,每个unicode代码点(字符在内)可以用一个代码单元表示。
但新增的规则种加了很多新的符号,这些符号不再只能用一个代码单元来表示,此时一个代码点就不一定只用一个代码单元就可以表示了,
java种String类里查看代码点和代码单元的部分方法如下:
String str = "?";
System.out.println(str.length());// 输出该字符串的代码单元的数量
System.out.println(str.codePointCount(0, str.length()));// 输出该字符串的代码点数