摘要: ①枚举根节点 可达性分析中,查找引用链这个操作,可作为GC Roots的节点主要在全局性的引用中(例如常量和静态属性)和执行上下文(例如栈帧中的本地变量表)中,现在很多应用本地方法区就有数百找,要一个个查引用的话,太费时间,另外,可达性分析对时间的敏感性还体现在GC停顿上,因为这项分析工作必须在一个 阅读全文
posted @ 2017-07-21 16:26 竹马今安在 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话, 阅读全文
posted @ 2017-07-21 16:19 竹马今安在 阅读(159) 评论(0) 推荐(0) 编辑
摘要: ① 标记-清除算法 最基础的收集算法分为“标记”和“清除”两个阶段;首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。也就是在判断对象生存还是死亡用到的算法 不足:一是效率不高,而是标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能导致以后再程序运行过程中需要分配较大对象时, 阅读全文
posted @ 2017-07-21 16:13 竹马今安在 阅读(108) 评论(0) 推荐(0) 编辑