java内存管理学习

    在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GCgarbage collection)负责自动回收不再使用的内存。但是有一个问题就是内存管理中出现垃圾回收滞后的现象,如果不及时的能够释放不用的内存,则会引起虚拟机内存泄露。所以,优化就体现的很明显:

    我们需要知道GC在什么时候回收内存对象,什么样的内存对象会被GC认为是“不再使用”的。 Java中对内存对象的访问,使用的是引用的方式。在Java代码中我们维护一个内存对象的引用变量,通过这个引用变量的值,我们可以访问到对应的内存地址中的内存对象空间。java垃圾回收器中,如果存在一个对象的引用,那么这些对象将占尽和耗尽内存,因为自动化的垃圾处理器无法证明这些对象的引用。局部变量没必要清除,因为随着方法的结束,这些内容会被自动清除。

http://blog.csdn.net/xinyuetonghua/article/details/7744769

http://www.cnblogs.com/hnrainll/archive/2013/11/06/3410042.html


你可能感兴趣的:(java内存管理学习)