很早就想对Java的GC做点小总结,一直没有时间,最近看了下java paper上的java gc文章,觉得不错,读了读,顺便做下总结。
java paper的GC文章地址,里面有很多java技术文章,写的都不错。
1、Java GC 简介
JVM的垃圾回收机制使开发者不必过多考虑内存的申请与释放,这样降低了软件开发的成本和语言的学习成本。
不同的JVM对GC的实现是不同的,目前Oracle维护着两种JVM,JRockit JVM,HotSpot JVM。
本文讨论的JVM是居于HotSpot的JVM。
1、运行时数据区域
方法区、Heap内存,Java Stack, PC Registers,本地方法栈
(以下图片均来自网络)
2、执行引擎
JIT Compiler, Garbage Collector
2、Heap Memory
在运行时,java对象的实例均被分配在heap内存中。当对象不被引用的时候,会被垃圾回收器标