繁体   English   中英

可以String保持大于Integer.MAX_VALUE个字符数

[英]Can String hold greater than Integer.MAX_VALUE number of character

如果我想创建一个包含x个字符的String对象,其中x> Integer.MAX_VALUE,我可以这样做吗?

谢谢。

看看来源

字段count ,表示字符串的大小为int - 因此您将获得溢出。

private final int count;

而不是存储长度为2 bn的单个字符串(这将使用8 GB的内存来创建btw)您可以创建字符串集合。 它不是那么容易使用,但可以有效地使用任何长度。

由于java中的String是引用类型,因此字符串存储在连续的内存块中。 必须可以通过整数索引访问此块。 在32位计算机体系结构中,存储器范围必须在0和2 ^ 32 -1之间,该体系结构等于int原始数据类型范围。

基本整数数据类型可以解决您的内存范围。 因此,您不能存储超出内存的任何字符串。

此外,您不能存储超出程序堆栈的任何数据,与系统内存相比,这是非常有限的内存范围。 超出应用程序内存时,您将获得stackOverFlow异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM