Java垃圾回收机制
说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略(或者说按机回收算法)来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集器?这些只做些了解就可,因为我们程序员不需要太深入了解,而且目前已近推出JDK8.0,相应的也有JVM8.0更新文档帮助大家深入了解JVM机制。
一.如何确定某个对象是“垃圾”?
二.典型的垃圾收集算法
三.典型的垃圾收集器
传统的C/C++等编程语言,需要程序员负责回收已经分配的内存,因为对象所占用的内存不会自动释放,如果程序员没没有显示释放该内存,此块内存就不能分配给其他对象,该内存在程序结束之前将一直被占用;但是显示回收会出现很多问题,如果一些分配的内存没有及时回收,会使系统运行速度减慢,甚至导致程序瘫痪,这种现象叫内存泄露。