wingcat929 2008-08-26 09:11
浏览 558
已采纳

咨询一下关于ArrayList写入大量数据出现的问题

有没人遇到过把一定量的数据写到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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条