Java使用UTF-16作为内部文本表示形式
Java中String和StringBuilder等的表示形式是UTF-16
[HTTPS://docs.Oracle.com/Java色/8/docs/tech notes/guides/Intl/overview.HTML]
Java平台中的文本如何表示?
Java编程语言基于Unicode字符集,并且一些库实现Unicode标准。 Java编程语言中的原始数据类型char是一个无符号的16位整数,可以表示U + 0000到U + FFFF范围内的Unicode代码点或UTF-16的代码单元。 Java平台中表示字符序列的各种类型和类-char [],java.lang.CharSequence的实现(例如String类)和java.text.CharacterIterator的实现都是UTF-16序列。
在JVM级别上,如果您使用的是char(对于Java 6的某些更新是默认设置),则实际的内存中表示形式可以是8位,ISO-8859-1,但仅适用于不需要UTF-16编码的字符串 。
[HTTP://呜呜呜.Oracle.com/tech network/Java/Java色/特产/VM options-JSP-140102.HTML]
并支持对字符串序列化的UTF-8的非标准修改。
默认情况下,序列化字符串使用UTF-8。
Java将多少字节用于内存中的char?
如果忽略对象中填充的需要,则char始终为两个字节。
注意:一个代码点(允许字符> 65535)可以使用一个或两个字符,即2或4个字节。