【问题标题】:Is there any limit for string size in a Java program? [duplicate]Java 程序中的字符串大小是否有限制? [复制]
【发布时间】:2012-08-25 07:15:41
【问题描述】:

可能重复:
String's Maximum length in Java - calling length() method

我有一个字符串定义为

字符串 xx

我可以分配的字符数有限制吗?

2) 我将用户输入分配给这个字符串 xx。 70% 的时候人们只说一个字。有时他们会说一个大句子,所以想知道可以吗?还是有更好的java实践?

【问题讨论】:

  • 你在发帖前有没有简单地用谷歌搜索一下? java string length limit 的第二次点击是上面列出的重复项。
  • 如果你不得不问,你已经做错了。不应将字符串视为容器。

标签: java string memory


【解决方案1】:

一个你可以搜索的常见问题,但无论如何我都会再次回答。

我可以分配的字符数有限制吗?

它的 Integer.MAX_VALUE 或 2^31-1 或大约 20 亿。在达到此大小之前,您更有可能遇到内存问题。例如字符串需要 4 GB,创建它需要 4 GB。

我将用户输入分配给这个字符串 xx。 70% 的时候人们只说一个字。有时他们会说一个大句子,所以想知道可以吗?

我怀疑 JK 罗琳的所有作品都可以放在一个字符串中。

或者有没有更好的java实践?

我建议您尽可能保持简单。分配一个字符串引用非常简单。

【讨论】:

  • 请记住,如果堆大小除以 char(即 2)的大小,小于 Integer.MAX_VALUE,则将是上限。
  • @Eric 所以“不仅仅是一句话”.. ;-)
  • @Eric True,正如我提到的,字符串中的每个字符都需要 4 个字节。 (2 个字节用于字符串,2 个字节用于构建它)
  • 您需要为每个 4GB 块创建一个连续堆段,因此即使是 8GB 堆也可能无法解决问题。
  • 恭喜,你的答案现在是谷歌搜索结果的第一名。所以大多数找到这个答案的人实际上都在搜索它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多