我想打印1000000至1999999999。 我以为这是一件容易的事,但是蚀告诉了我一些有关内存错误的信息。我该怎么办?我想要一个文本数据,其中所有数字均来自 将1000000000至1999999999分别记录在新行中。我以为可以在控制台中将它们打印出来,然后将其复制并粘贴到.txt数据中即可,但遗憾的是没有。
我的代码:
public static void main(String[] args) {
int number = 1000000000;
do {
System.out.println(number);
number = number +1;
} while (number < 2000000000);
}
您将如何解决此问题? 请帮助我。
答案 0 :(得分:5)
您遇到的问题是因为您正在要求Eclipse在内存中缓冲1,000,000,000 x 11或12个字符。大于20 GB,对于Eclipse进程堆来说显然太大了。
除非您在具有大量RAM的真正高端PC上运行Eclipse,否则该方法根本行不通。即使那样,我也有怀疑。例如,复制和粘贴100亿个字符可能无效。
您需要采取另一种方法;例如让您的应用程序将数字直接写到输出文件中。
答案 1 :(得分:3)
我刚刚编写了这段代码,通过运行它,我得到了以下结果:
完成时间:2018年10月6日星期六BRT 00:03:25
[('apple', 2), ('pear', 1)]
答案 2 :(得分:2)
最好从命令行运行类文件并重定向输出。假设您正在“ unixy”类环境中运行。
java Counter > output.txt # This will take lot of time.