我刚开始使用 Java 并试图理解基本概念。我被问到一个问题,“Java 是否使用一字节长的 ASCII 代码集来表示字符?”
我知道 Java 使用包含 ASCII 的 Unicode,但 ASCII 是一个字节长吗?
ASCII 是 7 位表示,所以是的,每个 ASCII 字符都可以放入byte
.
但是,Javachar
是 16 位的。它是一个 UTF-16 编码单元。因此,如果您有一个char
100 个字符的数组,即使每个字符都只是 ASCII,也将需要 200 个字节(加上对象开销)。从JLS 的第 3.1 节:
Java 编程语言使用 UTF-16 编码以 16 位代码单元序列表示文本。