内存,一个关于游戏运行及超爽体验的神器,那么有关软件项目开发中内存的问题也成了程序员的必修课!
我们常说的内存不够,是内存溢出的问题,我们将在下一个博客讨论,这里先说内存泄露.
内存泄露的原因:
我们每次创建引用类的数据类型,他会在我们的对内存中分配相适合大小的空间,但是在使用完之后并没有置为null,也就是说,系统以为我们还再用,就不会调用垃圾回收机制,这样就造成了内存的泄露.在C/C++中,内存使用完后,并没有释放,就把引用的方式全部删除,那么堆内存的内存任然被占用,这是c的内存泄露,但是java不会,因为如果你删除引用,那么就说明把引用置为null,垃圾回收机制会自动回收了,java的内存泄露不属于着用,也就说,java的内存泄露是垃圾回收机制不能处理的,就是一部分引用我们不用了,但是他们被另一部分引用引用了,但是没有使用,那么这也造成了内存的泄露.
- 具体体现在:
1.属性比如集合类的属性使用完成,但是没有置null.
2.在构造方法里大肆的初始化属性.
3.资源连接没有关闭,比如io流,网络连接,数据库连接.
4.用结构复杂的数据结构,比如说书,图,gc方法回收不叫复杂.
5.不再使用的对象置为null;
6.远程调用尽量用瞬时值.