可以包含最多内存空间的变量?

kam*_*hai 3 c java

可以包含 1,000,000,000(十进制数)的什么类型的变量占用最多的内存空间?

  1. C语言中的int
  2. C 中的字符串
  3. Java 中的字符串(使用 unicode)

Ste*_*n C 5

一个 Java 字符串。底层 Java 字符串由一个具有 3 个字段的对象组成,其中一个字段指向包含字符的单独数组对象。当然,Java 字符串由 16 位字符1 组成

如果您担心内存使用超过所有其他标准,请不要使用 Java。但是对于大多数应用程序,内存使用是您最不关心的。

值得注意的是,1,000,000,000 可以使用 Java 表示int,其大小与 C 有符号或无符号(32 位)整数相同。

此外,一个Cint不一定大足以代表10亿。在某些平台上,int是 16 位,这是 C 标准所允许的。


1 - 实际上,这取决于 Java 平台。例如,在 Java 9 中,他们修改了String实现,byte对于完全由 0 到 255 范围内的字符组成的字符串,每个字符使用一个。请参阅这篇文章。但是尽管如此,Java 字符串仍然比 C 字符串占用更多空间。

  • @nonnb - 为了在技术上绝对正确,C 标准规定 `int` 的范围至少为 -32758 到 +32767。它可以(并且经常是)比这更大。但是,该标准对 `int` 与“本地机器字”的大小相同*绝对没有说明。 (3认同)