大多人认为认为Android程序因为有垃圾回收机制,就不会有内存泄漏。其实如果我们一个程序中已经不再使用某个对象,但是依然有引用指向它,垃圾回收器就没有办法回收它,所以该对象占用的内存就无法被使用,造成内存泄露。如果我们的Java程序运行了很久,而这种内存泄漏就会不断的发生,最后就没有内存可用。当然Java的内存泄漏和C/C++是不一样的。如果Java程序完全结束之后,它的所有对象就不可达了,系统就可以对它们进行垃圾回收,它的内存泄漏仅限于它本身,而不会影响整个系统。C/C++的内存泄漏就比较糟糕了,它的内存泄漏是系统级,即使该C/C++程序退出,它泄漏的内存也无法被系统回收,永远不可用了,除非重启机器。
网友评论