Java中关于内存泄漏出现的原因以及如何避免
2018-06-20 · 国内最优秀java资源共享平台
关注
展开全部
1. 什么是内存泄露
1.1 内存泄露的定义:对于应用程序来说,当对象已经不再被使用,但是Java的垃圾回收器不能回收它们的时候,就产生了内存泄露。
1.2 要理解这个定义,我们需要理解对象在内存中的状态。哪些对象是无用对象,哪些是未被引用的对象
2. 怎样阻止内存泄露
2.1使用List、Map等集合时,在使用完成后赋值为null
2.2使用大对象时,在用完后赋值为null
2.3目前已知的jdk1.6的substring()方法会导致内存泄露
2.4避免一些死循环等重复创建或对集合添加元素,撑爆内存
2.5简洁数据结构、少用静态集合等
2.6及时的关闭打开的文件,socket句柄等
2.7多关注事件监听(listeners)和回调(callbacks),比如注册了一个listener,当它不再被使用的时候,忘了注销该listener,可能就会产生内存泄露
1.1 内存泄露的定义:对于应用程序来说,当对象已经不再被使用,但是Java的垃圾回收器不能回收它们的时候,就产生了内存泄露。
1.2 要理解这个定义,我们需要理解对象在内存中的状态。哪些对象是无用对象,哪些是未被引用的对象
2. 怎样阻止内存泄露
2.1使用List、Map等集合时,在使用完成后赋值为null
2.2使用大对象时,在用完后赋值为null
2.3目前已知的jdk1.6的substring()方法会导致内存泄露
2.4避免一些死循环等重复创建或对集合添加元素,撑爆内存
2.5简洁数据结构、少用静态集合等
2.6及时的关闭打开的文件,socket句柄等
2.7多关注事件监听(listeners)和回调(callbacks),比如注册了一个listener,当它不再被使用的时候,忘了注销该listener,可能就会产生内存泄露
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询