今天在测试代码的时候出现了一个异常Exception in thread “main” java.lang.OutOfMemoryError: Java heap space,这个异常指向的是反序列化的代码
Object o = (Object) ois.readObject();
但是这个方法是JavaAPI里面的怎么会错呢?
难道是要反序列化的那个对象有错?看了一下也没发现什么问题啊。
于是想到可能是某个List放数据太多,装不下了,把List一顿优化,还是有问题!
试了一下一条数据跑,是某些特定的数据会报这个错 ,那就不是存放数据太多造成的了,究竟怎么回事呢?
使用Eclipse Memory Analyzer分析了一下,显示ClassLoader的问题,WTF!
最后最后,发现是反序列化时候要用到的byte数组在组合的时候出错了!为啥之前看了很久没有发现呢???
这样,把拼接的数据给整好就行了就没有报错了,真是太不容易了?希望大家别遇到这样的问题!我在这做个记录,要是谁遇到了就知道该怎么一步到位了!