gpt4 book ai didi

java - Java 与 C 中的字符大小

转载 作者:太空狗 更新时间:2023-10-29 23:02:30 25 4
gpt4 key购买 nike

为什么 Java 中的字符存储空间是 C 中字符的两倍?

最佳答案

在 Java 中,字符是 16 位的,而 C 是 8 位的。

一个更普遍的问题是为什么会这样?

找出为什么您需要查看历史并就该主题得出结论/意见

当 C 在美国开发时,ASCII 在那里非常标准,你只需要 7 位,但使用 8 位你也可以处理一些非 ASCII 字符。这似乎绰绰有余。许多基于文本的协议(protocol),如 SMTP(电子邮件)、XML 和 FIX,仍然只使用 ASCII 字符。电子邮件和 XML 编码非 ASCII 字符。二进制文件、套接字和流仍然只有 8 位字节。

顺便说一句:C 可以支持更宽的字符,但这不是普通的 char

当开发 Java 时,16 位似乎足以支持大多数语言。从那时起,unicode 已扩展到 65535 以上的字符,Java 不得不添加对代码点的支持,代码点是 UTF-16 字符,可以是一个或两个 16 位字符。

因此,让 byte 成为字节,让 char 成为无符号的 16 位值在当时是有意义的。

顺便说一句:如果您的 JVM 支持 -XX:+UseCompressedStrings,它可以使用字节而不是字符来表示仅使用 8 位字符的字符串。

关于java - Java 与 C 中的字符大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com