字符大小为8位还是16位?

use*_*603 13 java byte char

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html,字符大小为16位,即2字节.不知怎的,我回忆起它的8位即1字节.为了清除我的疑问,我创建了一个单字符"a"的文本文件并保存.然后我检查了文件的大小,它的1个字节即8位.我很困惑人物的大小?如果是2字节,为什么文件大小是1字节,如果是1字节,为什么链接说2个字节?

Jon*_*eet 34

charJava中的A 是UTF-16代码单元.它不一定是完整的Unicode字符,但它实际上是无符号的16位整数.

当您将文本写入文件(或以其他方式将其转换为字节序列)时,数据将取决于您使用的编码.例如,如果您使用ASCII或ISO-8859-1,那么您可以编写哪些字符非常有限,但每个字符只能是一个字节.如果使用UTF-16,那么每个Java char将被转换为两个字节 - 但是一些Unicode字符可能需要四个字节(由两个Java char值表示).

如果使用UTF-8,那么char编码形式中的单个Java的长度将取决于值.


snr*_*snr 5

有一种当代的方法来了解其大小。只需使用打印即可BYTES

System.out.println(Character.BYTES);
Run Code Online (Sandbox Code Playgroud)

结果是 2