为什么这会得到“线程中的异常”AWT-EventQueue-0“java.lang.OutOfMemoryError:Java堆空间”错误?

时间:2011-05-08 05:27:49

标签: java memory heap

为什么我因Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space而获得objects[i]=rs.getObject(i+1);?大约有10,000条记录,每条记录大约有4,000个字符。

        String[] tableColumnsName = {idString, dateEnteredString, entryString, operatorString, licenseNoString, lastModifiedString};
        DefaultTableModel aModel = (DefaultTableModel) logEntryTable.getModel();
        aModel.setColumnIdentifiers(tableColumnsName);

        ResultSetMetaData rsmd;
        try {
            rsmd = rs.getMetaData();

            int colNo = rsmd.getColumnCount();
            while(rs.next()){
                Object[] objects = new Object[colNo];
                for(int i=0;i<colNo;i++){
                    objects[i]=rs.getObject(i+1);
                }
                aModel.addRow(objects);
            }
            logEntryTable.setModel(aModel);

            logEntryTable.getColumnModel().getColumn(0).setMaxWidth(30);

            rs.close();

        } catch (SQLException e) {
            e.printStackTrace();
            showCantConnectErrorDialog();
        }

2 个答案:

答案 0 :(得分:3)

您的JVM内存不足。当JVM内存不足时,可能会出现OutOfMemoryError可能出现在分配内存的代码中的任何位置。尝试使用-Xmx parameter增加堆大小。

答案 1 :(得分:1)

我同意^^您需要增加堆大小,或者如果不可能,请减少所有内容以使其尽可能节省空间。