如果我想创建一个包含x个字符的String对象,其中x> Integer.MAX_VALUE,我能这样做吗?
感谢。
答案 0 :(得分:5)
答案 1 :(得分:3)
而不是存储长度为2 bn的单个字符串(这将使用8 GB的内存来创建btw)您可以创建字符串集合。它不容易使用,但可以有效地使用任何长度。
答案 2 :(得分:2)
由于java中的String是引用类型,因此字符串存储在连续的内存块中。必须可以通过整数索引访问此块。在32位计算机体系结构中,存储器范围必须介于0和2 ^ 32 -1之间,该体系结构等于int原始数据类型范围。
基本整数数据类型可以解决您的内存范围。因此,您不能存储超出内存的任何字符串。
此外,您不能存储超出程序堆栈的任何数据,这与系统内存相比,内存范围非常有限。当超出应用程序内存时,您将获得stackOverFlow异常。