Java知识点
2020-03-17 17:58:51   0  举报             
     
         
 AI智能生成
  Java中垃圾收集的一些概念
    作者其他创作
 大纲/内容
  对象存活判断    
     引用计数    
     判断对象引用数量,新增加1,释放减1,为0回收  
     特点:简单、不能解决对象循环引用问题  
     可达性分析    
     判断对象的引用链是否可达  
     垃圾回收类型    
     Minor GC    
     对新生代回收  
     Full GC    
     对整个堆回收  
     垃圾回收算法    
     标记-清除法    
     优点:简单实现,容易理解  
     缺点:时间效率低、空间内存碎片多  
     复制法    
     优点:无碎片问题、实现简单、运行高效、适合新生代  
     缺点:内存缩小为原来的一半,持续复制长生存期的对象则导致效率降低。  
     标记-压缩法    
     优点:无碎片问题、无内存减半问题、适合老年代  
     缺点:不适合频繁更替、不适合新生代  
     分代收集法    
     优点:因代而异,不同代不同算法处理  
     新生代:复制法;老年代:标记-清除法或者标记-整理法  
     垃圾回收器    
     回收新生代的收集器    
     Serial    
     串行回收、古老、稳定、效率高  
     新生代:复制法;老年代:标记-压缩法  
     ParNew    
     新生代:并行;老年代:串行  
     新生代:复制法、老年代:标记-压缩法  
     多线程执行  
     Parallel Scavenge    
     与parNew类似,但是更注重吞吐量  
     回收老年代的收集器    
     Serial Old    
     Serial的老年代版本。串行,标记-压缩法  
     Parallel Old    
     Parallel的老年代版本。多线程、标记-压缩法  
     CMS    
     以获取最短回收停顿时间为目标的收集器  
     初始标记-并发标记-重新标记-并发清除  
     特点    
     优点:并发收集,低停顿  
     缺点:产生大量碎片,并发阶段降低吞吐量  
     回收整个Java堆的收集器    
     G1    
     特点    
     空间整合    
     采用标记-压缩法  
     可预测停顿    
     建立可预测停顿模型  
     内存分配与回收策略    
     对象优先放Eden区    
     当Eden区没有足够空间进行分配时,虚拟机将发起一次minor GC  
     大对象放老年区    
     比如长字符串、数组等  
     年龄长的对象移到老年区    
     minor GC超过默认次数(15)被认为年老对象  
     动态对象年龄判断
    
     相同年龄所有对象占一半多,以该年龄划分年老和年轻  
     by AthenaHe  
    
 
 
 
 
  0 条评论
 下一页