在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特色,程序员
首先,这些对象是可达的,即在有向图中,存在通路能够与其相连;其次,这些对象是无用的,即程序之后不会再使用这些对象。编程
若是对象知足这两个条件,这些对象就能够断定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。对象
在C++中,内存泄漏的范围更大一些。有些对象被分配了内存空间,而后却不可达,因为C++中没有GC,这些内存将永远收不回来。blog
在Java中,这些不可达的对象都由GC负责回收,所以程序员不须要考虑这部分的内存泄露。内存
经过分析,咱们得知,对于C++,程序员须要本身管理边和顶点,而对于Java程序员只须要管理边就能够了(不须要管理顶点的释放)。效率
经过这种方式,Java提升了编程的效率。内存泄漏