能容纳1,000,000,000(十进制数)的变量,哪种类型的变量占用内存最多?
- C 中的整数
- C 中的字符串
- Java 中的字符串(使用 unicode)
最佳答案
Java 字符串。在引擎盖下 Java String 由一个具有 3 个字段的对象组成,其中一个字段指向包含字符的单独数组对象。当然,Java 字符串由 16 位字符组成1。
如果您担心内存使用超过所有其他标准,请不要使用 Java。但对于大多数应用程序,内存使用是您最不关心的问题。
值得注意的是,1,000,000,000 可以使用 Java int
表示,它与 C 有符号或无符号(32 位)整数的大小相同。
此外,C int
不一定大到足以表示 1,000,000,000。在某些平台上,int
是 16 位,这是 C 标准允许的。
1 - 实际上,这是依赖于 Java 平台的。例如,在 Java 9 中,他们修改了 String
实现,以便对完全由 0 到 255 范围内的字符组成的字符串每个字符使用一个 byte
。参见 this article .但尽管如此,Java 字符串仍然比 C 字符串占用更多空间。
关于java - 能容纳最多内存空间的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3590437/