异常OutOfMemoryError:Java堆空间

时间:2015-03-24 09:07:59

标签: java out-of-memory objectoutputstream

我想保存一个大对象

 public void saveGenes() throws FileNotFoundException, IOException{
        String file = "genes.obj";
        String start = String.format("%tr", new Date());
        System.out.println("Save "+file+"...... "+start+"\n");
        ObjectOutputStream oos = new ObjectOutputStream(new     BufferedOutputStream(new FileOutputStream(file)));
        Genes g = new Genes();
        g=this;
        oos.writeObject(g);
        oos.close();
        String end = String.format("%tr", new Date());
        System.out.println("Save Completed......" + end);
    }

但我必须尝试这个错误      线程“main”中的异常java.lang.OutOfMemoryError:Java堆空间          at java.io.ObjectOutputStream $ HandleTable.growEntries(Unknown Source)

我测试了-Xmx4096M,但错误不断出现

1 个答案:

答案 0 :(得分:0)

您可以尝试将数据拆分为较小的部分,也可以尝试调用System.gc(),但根据我的经验,它不做任何事情。但如果它是战略性的,我听说它有效。

我不知道为什么会发生这种情况的具体原因。