`
cfyme
  • 浏览: 263772 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

引起java内存泄露的原因

 
阅读更多

1.对于打开的socket等资源,没有做及时的回收处理。

 

2.生存周期较长的对象,持有了生存周期较短的对象的引用,以至于那些生存周期短的对象,在无用的情况下,没有得到回收。

 

3.对于类的成员变量为集合的情况,对集合的使用应该谨慎。比如,一个专门保存用户操作履历的对象,有全局变量List来保存用户所有点击过的链接。但实际项目中,不可能保存住用户的每一次链接操作,然后显示给用户,有时候可能只是显示最新的20条。所以这时候就要对这个全局变量进行处理,不能让它无限的膨胀下去。

 

4.在类的成员变量为集合的情况,集合中的元素又是比较复杂的对象,(这个对象中可能还包含着是集合的成员变量)在不需要此类的对象的时候,应该自己来实现对类的成员的销毁。

 

5.对单例模式应该慎用,单例对象在被初始化后将在JVM的整个生命周期中存在,如果单态对象持有外部对象的引用,那么这个外部对象将不能被回收,如故这个外部对象很庞大,那么对内存的消耗是很大的。

 

 

分享到:
评论

相关推荐

    关于JAVA内存泄漏问题注意事项

    关于JAVA内存泄漏问题注意事项.doc

    java内存泄露深度分析及解决

    一旦你的程序存在内存泄漏,要查明代码中引起泄漏的原因是很困难的。同时这篇文章也要介绍一个新的工具来查找内存泄漏,然后指明发生的根本原因。这个工具容易上手,可以让你找到产品级系统中的内存泄漏。

    一种预防XML文件过大引起JAVA内存泄露的方案.pdf

    java内存泄露是对应用系统的稳定性有很大的影响,文件过大使程序运行要用到的内存大于虚拟机能提供的最大内存而导致内存泄露.文中提出了通过对XML文件拆分与拼装来解决由于XML文件过大而导致的内存泄露问题的方法....

    Java内存泄漏问题相关总结

    本文档通过简单的一些示例,分析了容易引起内存泄露的几大原因,并提出了解决的办法!

    图片过大引起的内存溢出解决方案

    使用BitmapFactory加载图片时,如果图片过大可能引起OutOfmemory溢出的问题。解决办法。

    如何避免JDBC引起的内存溢出情况

    有的时候,我们需要一次查询很多的数据,或者是说每次查询的数据量都很大,都有可能早晨内存溢出的情况,所以我们今天分别针对三个数据库来探讨如何避免这一问题。

    Java基础知识.doc

    Java中的内存泄露的情况:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露 内存泄露的另外一种情况:当一个对象被存储进HashSet或HashMap中以后,就不能修改这个对象中的那些参与计算哈希值的字段了...

    Android 内存泄漏调试经验分享

    二、Android(Java)中常见的容易引起内存泄漏的不良代码 1 (一) 查询数据库没有关闭游标 2 (二) 构造Adapter时,没有使用缓存的 convertView 3 (三) Bitmap对象不在使用时调用recycle()释放内存 4 (四) 释放对象的...

    Java问题定位技术.pdf

    3.Java内存泄漏分析和堆内存设置 4.关于并发和多线程 5.幽灵代码 6.常见的Java泥潭 7.JVM 8.关于字符集与编码 9.常用分析工具 10.Java最佳实践 11.关于数据库 12.工程实践 13.常见的案例 附录 A JProfiler内存泄漏...

    Android内存泄漏终极解决篇(下)

    静态变量引起的内存泄漏 非静态内部类引起的内存泄漏 资源未关闭引起的内存泄漏 二、静态变量引起的内存泄漏 在java中静态变量的生命周期是在类加载时开始,类卸载时结束。换句话说,在android中其生命周期是在...

    Node.js中内存泄漏分析

    如果内存泄漏的位置比较关键,那么随着处理的进行可能持有越来越多的无用内存,这些无用的内存变多会引起服务器响应速度变慢,严重的情况下导致内存达到某个极限(可能是进程的上限,如 v8的上限;也可能是系统可...

    java性能分析 jmap jstack

    heap dump:记录某一时刻JVM堆中对象使用情况,哪些对象占用了太多的堆栈空间,来发现导致内存泄露或者可能引起内存泄露的对象。 thread dump:记录java应用中各线程在某一时刻的运行的位置,即执行到哪一个类的哪一...

    Java Web开发常见问题.docx

    这通常是由于内存泄漏或程序中使用了过多的内存资源导致的。 线程安全问题:在多线程环境下,Java Web应用程序可能会出现线程安全问题,例如竞态条件或死锁等。这通常是由于应用程序中的共享资源或同步问题导致的。 ...

    Java优化编程(第2版)

    15.1 用weakhashmap屏蔽内存泄漏 15.2 优化java应用大小 15.3 通过randomaccess接口优化迭代列表 15.4 合并java中的多进程与系统优化 小结 附录a together工具的使用简介 附录b j2se 5.0的新特性与性能的提升 附录c ...

    java 面试题 总结

    内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的...

    操作系统(内存管理)

    文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。 为什么必须管理内存 内存管理是计算机编程最为基本的...

    jprofiler网上牛人学习实战资料汇总

    5月份部门领导要我做一下JAVA程序的内存泄露情况,我主要用LR生成负载,用Jprofiler监控资源,失败了很多次。...呵呵~~后来,还是只能用LR测出存在内存泄露,而没真正发现是哪个类哪个对象引起。本人在狂补JAVA~ 汗!!

    jprofiler网上牛人学习实战资料汇总4

    5月份部门领导要我做一下JAVA程序的内存泄露情况,我主要用LR生成负载,用Jprofiler监控资源,失败了很多次...呵呵~~后来,还是只能用LR测出存在内存泄露,而没真正发现是哪个类哪个对象引起。本人在狂补JAVA~ 汗!!

    jprofiler网上牛人学习实战资料汇总2

    5月份部门领导要我做一下JAVA程序的内存泄露情况,我主要用LR生成负载,用Jprofiler监控资源,失败了很多次...呵呵~~后来,还是只能用LR测出存在内存泄露,而没真正发现是哪个类哪个对象引起。本人在狂补JAVA~ 汗!!

    jprofiler网上牛人学习实战资料汇总3

    5月份部门领导要我做一下JAVA程序的内存泄露情况,我主要用LR生成负载,用Jprofiler监控资源,失败了很多次...呵呵~~后来,还是只能用LR测出存在内存泄露,而没真正发现是哪个类哪个对象引起。本人在狂补JAVA~ 汗!!

Global site tag (gtag.js) - Google Analytics