gpt4 book ai didi

java - Java中String的字符编码是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:40:15 28 4
gpt4 key购买 nike

我实际上对 Java 中的字符串编码感到困惑。我有一些问题。如果你知道他们的答案,请帮助我:

1) Java 字符串在内存中的原生编码是什么?当我写 String a = "Hello" 时,它将以哪种格式存储?由于 Java 是独立于机器的,我认为系统不会进行编码。

2) 我在网上读到“UTF-16”是默认编码,但我很困惑,因为说当我写 int a = 'c' 时,我得到了字符的编号在 ASCII 表中。那么 ASCII 和 UTF-16 是一样的吗?

3) 另外我不确定字符串在内存中的存储取决于:操作系统、语言?

最佳答案

  1. Java 在内部将字符串存储为 UTF-16。

  2. “默认编码”不太正确。 Java 在内部将字符串存储为 UTF-16,但在外部使用的编码,即“系统默认编码”,因平台而异,甚至可以通过某些平台上的环境变量等内容进行更改。

    ASCII 是拉丁语 1 的子集,拉丁语 1 是 Unicode 的子集。 UTF-16 是一种编码 Unicode 的方式。因此,如果您对 ASCII 范围内的任何字符执行 int i = 'x' 测试,您将获得 ASCII 值。然而,UTF-16 可以表示比 ASCII 更多的字符。

  3. 来自 java.lang.Character docs :

    The Java 2 platform uses the UTF-16 representation in char arrays and in the String and StringBuffer classes.

    因此它被定义为 Java 2 平台的一部分,UTF-16 用于这些类。

关于java - Java中String的字符编码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4453269/

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