Java 在这种情况下,我能得到内存不足错误吗?

Java 在这种情况下,我能得到内存不足错误吗?,java,string,memory-management,out-of-memory,string-interning,Java,String,Memory Management,Out Of Memory,String Interning,所以在Java中,字符串被插入一个池中,这意味着它们会自动存储在内存中。 在这种情况下,如果我做如下操作: for (int i = 0; i <= 2000000000; i++){ System.out.print(i + "somelongstring"); } for(int i=0;i No.因为您的条件中有一个逻辑错误i==2000000000;必须是i No,因为不是每个字符串都被存储在内存中(即使它们存储在内存中-还应该存储在哪里?)。打印后,您的每个字

所以在Java中,字符串被插入一个池中,这意味着它们会自动存储在内存中。 在这种情况下,如果我做如下操作:

    for (int i = 0; i <= 2000000000; i++){
     System.out.print(i + "somelongstring");
}

for(int i=0;i No.因为您的条件中有一个逻辑错误
i==2000000000;
必须是
i No,因为不是每个字符串都被存储在内存中(即使它们存储在内存中-还应该存储在哪里?)。打印后,您的每个字符串都不再被引用,因此被垃圾回收操作否,字符串被保留,因为它们是字符串常量,或者是因为有人在实例上调用了
string.intern()
。所有其他字符串实例都是正常的对象,可以(也将)“被垃圾收集起来!”托马斯,这正是我想要的答案。谢谢