OutOfMemoryError:创建具有41000行的JTable时获得的Java堆空间

时间:2018-07-04 14:13:24

标签: java jtable out-of-memory heap space

我正在尝试创建一个显示41000行数据的JTable,对于只有4457行需要创建的另一个JTable,我使用相同的代码也可以正常工作,因此我的问题不是来自数据。我的程序执行需要25分钟才能计算出需要在用户界面中显示的所有值。程序执行完成后,我收到以下错误消息:

"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Vector.<init>(Unknown Source)
at java.util.Vector.<init>(Unknown Source)
at javax.swing.table.DefaultTableModel.convertToVector(Unknown Source)
at javax.swing.table.DefaultTableModel.convertToVector(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)"

是否不可能创建具有41000行的JTable?太大了,无法创建JTable吗?我不认为我的程序有什么问题,因为对于具有4457行的另一个表,我使用相同的代码也可以正常工作。

1 个答案:

答案 0 :(得分:0)

4457!= 41000 。完全取决于您的对象端。

  

是否不可能创建具有41000行的JTable?

这完全取决于您要渲染的对象。一个只有一个字段的对象与另一个对象不同。如评论所说,这取决于您的JVM配置,添加更多内存可以作为一种解决方案-Xmx2048m

  

要创建JTable的行太多吗?

相同的答案。这取决于您使用的对象的类型。如果对象太大,最好使用分页或为此采取更好的方法。