Java-打印10亿到20亿

时间:2018-10-06 02:44:32

标签: java memory

我想打印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);

}

您将如何解决此问题? 请帮助我。

3 个答案:

答案 0 :(得分:5)

您遇到的问题是因为您正在要求Eclipse在内存中缓冲1,000,000,000 x 11或12个字符。大于20 GB,对于Eclipse进程堆来说显然太大了。

除非您在具有大量RAM的真正高端PC上运行Eclipse,否则该方法根本行不通。即使那样,我也有怀疑。例如,复制和粘贴100亿个字符可能无效。

您需要采取另一种方法;例如让您的应用程序将数字直接写到输出文件中。

答案 1 :(得分:3)

我刚刚编写了这段代码,通过运行它,我得到了以下结果:

  • 最终文件:10GB以上
  • 开始时间:2018年10月6日BRT星期六
  • 完成时间:2018年10月6日星期六BRT 00:03:25

    [('apple', 2), ('pear', 1)]
    

答案 2 :(得分:2)

最好从命令行运行类文件并重定向输出。假设您正在“ unixy”类环境中运行。

java Counter > output.txt # This will take lot of time.