关于java 内存溢出问题
2012-03-14 17:34
295 查看
最近程序做的程序出现一个bug,具体错误如下:
java.lang.NumberFormatException: unable to parse 'null' as integer
at java.lang.Integer.parseInt(Integer.java:356)
at java.lang.Integer.parseInt(Integer.java:332)
at com.sarnath.study.entity.LoginPerson.getUserDollar(LoginPerson.java:67)
at com.sarnath.study.DiscussActivity.downloadTask(DiscussActivity.java:513)
at com.sarnath.study.DiscussActivity.onClick(DiscussActivity.java:250)
at android.view.View.performClick(View.java:2538)
at android.view.View$PerformClick.run(View.java:9152)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
经过检查发现,在存放数据的实体类中,使用了大量的静态变量,且整个工程的数据库一直是处于打开状态,并没有在使用完毕及时关闭,在和朋友讨论过后总结了一下几个内存溢出经常发生的原因。上面错误我的修改方式是将静态变量全部以getter 和setter 的方式对数据进行存放操作,数据库在使用结束后及时关闭,另外几种方式暂时还没有尝试。
一般的应用程序出现内存的溢出,主要来自:
1、程序写的不规范,太多的线程、大服务一直存在、大量的循环
2、生成的对象太多没有及时的去释放他,也就是在使用完之后记得将不用的对象设置为null
3、静态变量中存放大量的数据,如上百长度的静态数组
4、不使用的图片对象没有使用recyle手动回收,大图片太多,显示没有进行压缩处理
5、数据库或是curcor没有关闭,也会造成对内存资源的浪费
java.lang.NumberFormatException: unable to parse 'null' as integer
at java.lang.Integer.parseInt(Integer.java:356)
at java.lang.Integer.parseInt(Integer.java:332)
at com.sarnath.study.entity.LoginPerson.getUserDollar(LoginPerson.java:67)
at com.sarnath.study.DiscussActivity.downloadTask(DiscussActivity.java:513)
at com.sarnath.study.DiscussActivity.onClick(DiscussActivity.java:250)
at android.view.View.performClick(View.java:2538)
at android.view.View$PerformClick.run(View.java:9152)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
经过检查发现,在存放数据的实体类中,使用了大量的静态变量,且整个工程的数据库一直是处于打开状态,并没有在使用完毕及时关闭,在和朋友讨论过后总结了一下几个内存溢出经常发生的原因。上面错误我的修改方式是将静态变量全部以getter 和setter 的方式对数据进行存放操作,数据库在使用结束后及时关闭,另外几种方式暂时还没有尝试。
一般的应用程序出现内存的溢出,主要来自:
1、程序写的不规范,太多的线程、大服务一直存在、大量的循环
2、生成的对象太多没有及时的去释放他,也就是在使用完之后记得将不用的对象设置为null
3、静态变量中存放大量的数据,如上百长度的静态数组
4、不使用的图片对象没有使用recyle手动回收,大图片太多,显示没有进行压缩处理
5、数据库或是curcor没有关闭,也会造成对内存资源的浪费
相关文章推荐
- 关于Java内存溢出问题
- 关于JAVA内存溢出问题
- 关于java内存溢出问题
- Java-No.15 内存泄露和内存溢出问题定位
- 【Java程序内存溢出问题的分析】
- java --内存溢出的问题
- JAVA开发(4) -JVM 内存溢出问题的解决
- 关于Java内存泄露的问题
- 关于java处理内存泄露与内存溢出的学习总结
- 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- java用Socket实现的远程桌面浏览 内存溢出问题
- tomcat内存溢出问题:java.lang.OutOfMemoryError: PermGen space
- Java JVM:内存溢出问题
- 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- 关于 自己遇到的内存溢出问题
- 关于java内存溢出的另一种处理方案
- Android(Java):内存溢出及适配问题
- 关于内存泄露和溢出问题浅谈
- 关于JPA中对于一对多双向关联下对象迭代产生占内存溢出问题的解决
- java-关于java中内存解析的问题