4.8 对象的销毁

在C++中,使用new关键字在堆中创建的对象需要自己去调用delete来释放,如果忘记了释放对象,就会导致内存泄漏。而Java使用了不同的方式,它采用垃圾内存回收(GC:garbage collection)机制来动态清理内存。

当一个对象不存在任何引用,或者对象超出了作用域范围时,垃圾回收器就会运转,帮助我们回收内存。不过要注意的是,垃圾回收器并不是即时运行的,并不是一旦对象无用了,垃圾回收器就立马运行,进行内存回收,而是会按照既定的规则运行。所以,如果在一个极短时间内,产生了大量的无用对象,同样也会耗尽内存。