为什么我用JAVA导入图片会那么的耗内存.
我总共要导三十几张图片进入内存,每张图片只有50K而已,加起来1M多一多,可是全部导入内存后,却发现堆溢出了
然后我用java -Xmx256m 来起动程序,发现,实耗内存150M,不会吧,这也太大了
有没有什么别的好方法能解决这个问题啊
因为我需要很多图片做动画,所以这些图片必须全部进入内存
高手,帮忙看看吧

解决方案 »

  1.   

    那你自己用windows图片查看器同时打开30几张图片试试看吧,更何况是java,又解决的办法,再倒入虾一张图片的时候关掉当前的图片。你就好像浏览网站时打开了30几个页面一样
      

  2.   

    开双缓冲(doubleBuffer)
    图片用一张导入一张啊,下一张图片就先进入缓冲区
      

  3.   

    你的图片是编码压缩后50几k吧?(如JPG)
    你把图像读入内存,其中的图像数据是以数组形式存放的,例如 TYPE_INT_ARGB,那么每个像素就占一个int(4字节),如果图是1000*1000的,那么这一张图就需要占了 1000 * 1000 * 4 btye 的内存。
    现在明白为什么会内存溢出了吧,一组图像的话一般的做法是需要哪张读哪张.