问题描述:
昨天用jxl实现用户提出的关于批量数据导入时第一次导入时没有问题第二次导入报错错误为: java.lang.OutOfMemoryError
问题分析:
1.首先我跟了一下程序发现程序在创建工作薄时较容易出现内存溢出。因此我推测问题的原因应该是由于jxl创建的对象引起的。
2.虽然确定了问题的位置但是,分析后发现程序其实并没有问题,再次推测应该是jxl创建的对象在第一次处理后没有被及时的清理导致大量的垃圾占用了内存,再次创建时内存小于可以使用的范围,才报错。可是如何在程序中清理内存中的垃圾呢?
这时需要明白几个Java语言的特点:
0、程序员无需去管理内存,因为JVM有垃圾回收(GC),会去自动进行垃圾回收