java - 字符大小是 8 位还是 16 位?

标签 java char byte

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html ,字符大小为 16 位,即 2 个字节。 不知何故,我想起了它的 8 位,即 1 个字节。为了消除我的疑问,我创建了一个包含单个字符“a”的文本文件 并保存了它。然后我检查了文件的大小,它是 1 个字节,即 8 位。我很困惑什么是大小 特点 ?如果是 2 字节,为什么文件大小是 1 字节,如果是 1 字节,为什么链接说是 2 字节?

最佳答案

char 在 Java 中是一个 UTF-16代码单元。它不一定是一个完整的 Unicode 字符,但它实际上是一个无符号的 16 位整数。

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

如果您使用 UTF-8 ,那么即使是编码形式的单个 Java char 的长度也将取决于该值。

关于java - 字符大小是 8 位还是 16 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24095187/

相关文章:

java - Java 中的 'this' 关键字

c - 如何比较两个链表的字符串?

python - str 到 Python3.3 中的字节

java - 使用vlcj创建媒体播放器时无法创建 native 媒体资源

java - java.lang.RuntimeException 和 java.lang.Exception 之间的区别

Java - 用于验证字符串是否为 StatsD 格式的正则表达式

c++ - 如何将 cin 转换为 const char*

c - 使用变量将元素输入到 char 数组中

java - 用Java读取图像

python - python3 中的 byte 与 str.encode