我想保存一个大对象
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,但错误不断出现
答案 0 :(得分:0)
您可以尝试将数据拆分为较小的部分,也可以尝试调用System.gc()
,但根据我的经验,它不做任何事情。但如果它是战略性的,我听说它有效。
我不知道为什么会发生这种情况的具体原因。