java - 能容纳最多内存空间的变量?

标签 java c

能容纳1,000,000,000(十进制数)的变量,哪种类型的变量占用内存最多?

  1. C 中的整数
  2. C 中的字符串
  3. 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/

相关文章:

java - 无法访问 camunda 驾驶舱页面

java - Google Cloud Endpoint Backend - 是否可以检索 HttpSession 的属性?

c - 在 C 中解析文件中的指令的简单方法?

java - JNI : How to pass "unsigned char* " from C++ to java

c - 在 C 程序中读取命令行参数

java - 不偶尔发送证书

java - 按需记录数据库 CUD 操作和回滚语句

java - 如何在不使用 jconsole 的情况下确保 JMS 监听器启动?

c# - 使用相同的套接字进行 UDP 发送和接收有优点还是缺点?使用 C 和 C#

c - Makefile,链接库