1

我理解字符串和文本之间的区别。 Hadoop中文本和字符串的区别

问题是如果我们说字符串的最大存储大小是 32767 字节。

Text t = new Text("Hadoo... 2GB of content");
...
String c = t.toString();

如果有大小限制,“c”将如何保存 2GB 的数据?

我在这里想念什么?

4

1 回答 1

2

Java 字符串的最大大小不是 32k 字节。它是存储Integer.MAX_VALUE字符所需的大​​小,即 2^31 - 1(~20 亿),大约为 4GB(参见这篇文章)。

您提到的帖子是指已弃用的UTF-8 类的大小限制,而不是 Java 的 String 类。

无论如何,如果您需要为单个 Text 实例提供这么多空间,我建议您重新考虑您的算法。正如彼得劳里在上述帖子中所说的那样:“我怀疑 JK 罗琳的所有作品都可以放在一个字符串中。”

于 2014-08-13T10:05:23.723 回答