您的位置:首页 > 编程语言 > Java开发

Java会不会出现内存泄露

2017-11-30 16:43 218 查看
1.深入的探究这个问题就需要了解Java是如何管理内存的,需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的

2.Java理论上不存在内存泄露,因为有垃圾回收器(GC)对内存进行释放。
3.实际上,java也存在内存泄露问题,原因:主要是一些对象虽然不再被使用,但它们仍然被引用。

怎样阻止内存泄露

1.使用List、Map等集合时,在使用完成后赋值为null

2.使用大对象时,在用完后赋值为null

3.目前已知的jdk1.6的substring()方法会导致内存泄露

4.避免一些死循环等重复创建或对集合添加元素,撑爆内存

5.简洁数据结构、少用静态集合等

6.及时的关闭打开的文件,socket句柄等

7.多关注事件监听(listeners)和回调(callbacks),比如注册了一个listener,当它不再被使用的时候,忘了注销该listener,可能就会产生内存泄露
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: