有没人遇到过把一定量的数据写到ArrayList里就会出现Exception in thread "main" java.lang.OutOfMemoryError: Java heap space异常吗?数据量大约超过5万左右吧就会出现这个问题,请问ArrayList有容量限制的吗?有什么解决办法吗?
2条回答 默认 最新
- iteye_2718 2008-08-26 14:09关注
你的问题应该不是出在ArrayList个数的大小上面,OutOfMemoryError很明显是由于对象太大倒致jvm的内存不够用,你用下面一段程序查一下jvm内存的使用情况:
Runtime lRuntime = Runtime.getRuntime();
System.out.println("Use Memory: "+(lRuntime.totalMemory()/1024/1024-lRuntime.freeMemory()/1024/1024)+"M
");
System.out.println("Free Memory: "+lRuntime.freeMemory()/1024/1024+"M
");
System.out.println("Max Memory: "+lRuntime.maxMemory()/1024/1024+"M
");
System.out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M
");
如果你一定要用这么大的arraylist的对像可以设置jvm内存的大小,但这是下下策 :(
我猜你用这么大的对象是做缓存处理吧,可以考虑用ehcahe做缓存处理来保存数据,ehcahe中如果数据超过限制会自动把数据Serializable到硬盘保存.这是上策 :D本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条