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

时间:2010-08-28 10:46:17

标签: java c

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

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

3 个答案:

答案 0 :(得分:3)

Java字符串。引擎盖下Java String包含一个包含3个字段的对象,其中一个字段指向包含字符的单独数组对象。当然,Java字符串由16位字符组成。

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

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

此外,C int 不一定大到足以代表1,000,000,000。在某些平台上,int为16位,C标准允许这样做。

答案 1 :(得分:1)

答案 2 :(得分:1)

C标准没有说明许多存储要求。事实上,你可以:

  • 256位C int,需要32个字节才能存储任何内容(参见@nonnb的评论)
  • 使用UCS-4 / UTF-32字符的宽C字符串(wchar_t[])(显然所有GNU实现都如此)
  • 使用32位char的C实现(必须在32位字节的系统上)