世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
垃圾收集主要有引用计数垃圾收集(直接垃圾收集)和可达性垃圾收集(间接垃圾收集),主流商用虚拟机使用的是可达性垃圾收集
垃圾收集器的结构基于分代收集理论
绝大多数对象都是朝生夕死的
熬过垃圾收集次数越多的对象越不容易消亡
跨代引用:在GC Roots不可达的地方,新生代与老年代对象相互引用(解决跨代引用使用记忆集)
正是基于这个理论,垃圾收集器将java堆分为了:新生代与老年代
正是基于这个理论,为了解决跨代引用引入了卡表
正是基于这个理论,不同的分代产生了不同的垃圾收集算法:标记复制、标记整理、标记清除