为什么 Java char 原语占用 2 个字节的内存?

2022-09-01 00:51:40

为什么Java char基元数据类型是2字节,而C是1字节,这有什么原因吗?

谢谢


答案 1

最初设计Java时,预计任何Unicode字符都可以容纳2个字节(16位),因此进行了相应的设计。实际上,Unicode 字符现在最多需要 4 个字节。因此,UTF-16,内部Java编码,要求增进字符使用2个代码单元。基本多语言平面(最常见的字符)中的字符仍使用 1。每个代码单元都使用 Java。这篇Sun文章很好地解释了这一点。charCharacterchar


答案 2

char在 Java 中采用 UTF-16 编码,每个字符至少需要 16 位的存储空间。


推荐