运行我的java程序24小时后,它显示异常,如“线程1内存错误Java堆大小”中的异常,在我的代码中,我正在使用集合对象,如hashmap,array list,vector和all。
这个问题出现在我的代码部分,我正在使用500个数据创建500个(在我的数据库表90000数据中)HashMap一次&将此hashmap对象设置为ArrayList>在finally块中我将hashmap对象设置为null并将此arralist对象传递给另一个方法进行处理。这一直持续到90000数据。
为了完成这个处理程序,我正在使用线程&来自run()方法的线程给予条件true&调用数据处理方法。
答案 0 :(得分:2)
这意味着你的堆已满。内存中有太多和/或重物。
可能的原因:
您保留对未使用对象的引用,并创建太多对象
解决方案:检查内存泄漏
你实际上需要所有这些引用,但你的堆太小了
解决方案:增加堆
由于你的异常经过很长一段时间后,我相信第一个可能是你的问题。