“程序在运行过程中会不断地分配内存空间,那些不再使用的内存空间应该被即时回收,从而保证高效利用”。
“如果存在无用的内存没有被回收,这就是内存泄漏”。
杨成先给出通俗的定义。
“拿C++程序来说,对象占用的内存空间都必须由程序员显式回收”。
“一旦程序员忘记回收,就会产生内存泄漏”。
“所以嘛,一个不负责任的C++程序员是很危险的!”
“哈哈!”
在场的Java程序员都笑了,表示自己毫无鸭梨。
“而对于Java程序来说”。
杨成话锋一转。
“显然没有C++这么多的顾虑,因为有垃圾回收机制”。
“但也不是高枕无忧喔!”
“Java虚拟机采用有向图来管理内存中的对象”。
“如果有一些对象,处于有向图可访问的范围内,但程序以后永远都不会再使用它们,那么它们所占用的内存空间也不会被回收”。
“这就是Java内存泄漏的原因!”