慕妹3242003
Java使用UTF-16进行内部文本表示Java中String和StringBuilder等的表示形式是UTF-16https://docs.oracle.com/javase/8/docs/technotes/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级别,如果您正在使用-XX:+UseCompressedStrings(这是Java 6的某些更新的默认值)实际的内存中表示可以是8位,ISO-8859-1,但仅适用于不需要UTF-16编码的字符串。http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html并支持UTF-8的非标准修改以进行字符串序列化。序列化字符串默认使用UTF-8。Java在内存中使用了多少字节?char如果忽略对象中填充的需要,则A 总是两个字节。注意:代码点(允许字符> 65535)可以使用一个或两个字符,即2或4个字节。