当前位置: 首页 > news >正文

甘肃省安装建设集团公司网站网页制作培训心得体会

甘肃省安装建设集团公司网站,网页制作培训心得体会,怎么做网站表白,免费域名领取文章目录 引言正文指针引用可达性分析算法垃圾回收算法标记清除算法标记整理算法复制分代收集 垃圾收集器Serial收集器ParNew并行收集器Parallel Scavenge吞吐量优先收集器Serial Old老年代收集器Parallel old收集器CMS收集器G1收集器(Garbage First垃圾优先&#x…

文章目录

    • 引言
    • 正文
      • 指针引用
      • 可达性分析算法
      • 垃圾回收算法
        • 标记清除算法
        • 标记整理算法
        • 复制
        • 分代收集
      • 垃圾收集器
        • Serial收集器
        • ParNew并行收集器
        • Parallel Scavenge吞吐量优先收集器
        • Serial Old老年代收集器
        • Parallel old收集器
        • CMS收集器
        • G1收集器(Garbage First垃圾优先)
    • 总结

引言

  • 上次面试腾讯,让我说了一下垃圾回收机制,虽然大概都说出来了,但是觉得还是有不够详细,今天好好整理一下,下次不会这么狼狈了!

正文

指针引用

  • Java中对象的访问是需要通过引用进行判断的,引用主要分为其中,按照强度递减分别是:强软弱虚

    • 强引用
      • 通过new创建的对象,直接用=赋值,如果还存在强引用,垃圾回收器绝对不会回收他
    • 软件引用
      • 需要使用SoftReference进行声明
      • 如果内存不够了,要报异常了,这里就要的优先回收软引用
      • 用于对象缓存
    Obj obj = new Obj();
    SoftReference<Obj> sr = new SoftReference<Obj>(obj)
    
    • 弱引用
      • 描述非必须的对象,当一个对象只有弱引用,只要发生GC,一定会被回收
    Obj obj = new Obj();
    WeakReference<Obj> sr = new WeakReference<Obj>(obj)
    
    • 虚引用
      • 最弱的引用,形同虚设
      • 仅仅是当前对象被回收了,我能收到通知

可达性分析算法

  • 通过一系列GC Root的根对象作为起始节点,然后根据引用关系向下搜索,搜索走过的路径就是引用链。

    • GC Root不可达,说明对象不再被使用
    • GC Root可达,说明对象仍旧在使用
  • 固定为GC Root的对象有以下几种

    • 虚拟栈中引用的对象
    • 在方法区,类静态属性引用的对象
    • 在方法区,常量引用的对象
    • 在本地方法栈中Native方法引用的对象
    • Java虚拟机内部的引用
    • 同步锁持有的对象

垃圾回收算法

标记清除算法
  • 找出所有对象,将存活对象进行标记,然后清理掉未标记的对象,结束。
    在这里插入图片描述
标记整理算法
  • 首先找出所有对象,将存活对象进行标记,然后将存活对象整理一端,将内存区域直接清除掉
    在这里插入图片描述
复制
  • 将内存划分为大小相等的两块,每次只使用其中一块,当这一块内存用完了,就将存活对象复制到另外一块上,然后再将使用过的内存空间进行一次清理
    在这里插入图片描述
分代收集
  • 根据对象的存活周期将内存划分为几块,不同块采用不同的收集算法。
  • 一般分为新生代和老年代,
    • 新生代
      • 绝大多数的对象都是活不过一次垃圾回收
      • 使用复制算法
    • 老年代
      • 大多数是熬过了很多次垃圾回收过程的对象。
      • 标记清除 或者 标记整理算法

垃圾收集器

  • 目前常用的hotpot虚拟机支持其中垃圾收集器,可以混用。
    在这里插入图片描述
Serial收集器
  • 基本流程
    • 暂停所有的工作线程,专门进行垃圾回收
  • 针对对象
    • 新生代
  • 算法
    • 复制算法
ParNew并行收集器
  • 多线程版的Serial收集器
  • 基本流程
    • 暂停所有工作线程,使用多线程进行垃圾回收
  • 针对对象
    • 新生代
  • 算法
    • 复制算法
Parallel Scavenge吞吐量优先收集器
  • 多线程垃圾收集器,尽量压缩垃圾收集时,用户线程的停顿时间

  • 基本流程

    • 暂停所有工作线程,使用多线程进行垃圾回收
  • 针对对象

    • 新生代
  • 算法

    • 复制算法
  • 注意

    • 需要控制最大垃圾收集停顿时间
    • 设置吞吐量大小
Serial Old老年代收集器
  • Serial收集器的老年版,使用标记-整理算法,提供客户端模式下使用
  • 基本流程
    • 暂停所有工作线程,使用多线程进行垃圾回收
  • 针对对象
    • 老年代
  • 算法
    • 标记整理算法
Parallel old收集器
  • 多线程垃圾收集器,尽量压缩垃圾收集时,用户线程的停顿时间

  • 基本流程

    • 暂停所有工作线程,使用多线程进行垃圾回收
  • 针对对象

    • 老年代
  • 算法

    • 复制算法
  • 注意

    • 应用于处理器资源较为稀缺的场合,考虑使用Parallel Scavenge 和 Parallel Old一块使用
CMS收集器
  • 追求最短停顿时间的垃圾收集器

  • 基本流程

    • 初始标记
      • 停下所有线程,仅仅标记一下GC Root能够关联的对象
    • 并发标记
      • 用户线程并行,进行GC Roots Tracing,耗时最长
    • 重新标记
      • 修正并发期间因为程序调用导致的标记变动,停下所有工作线程,耗时较短
    • 并发清除
      • 用户线程并行,清除掉死亡对象
  • 总结

    • 吞吐量低,但是停顿时间少,完成垃圾回收时间长,但是是并行的
    • 使用标记清除算法,内存空间不连续,大量的空间碎片
G1收集器(Garbage First垃圾优先)
  • 将内存进行分区,然后进行回收价值和成本排序,价值越高成本越低的区块优先回收。

  • 特性和问题总结:

    • 将整个堆分成大小相同的Region区域,每一个都是Region都可能是新生代、老年代、Eden空间和Survivor空间
    • G1每次收集的时候,只会收集部分Region,每次收集时,会先估算每一个小块存活对象的总数,回收垃圾最多的小块会先被收集
      • 对于跨Region的引用对象,使用记忆集解决
      • 并发标记阶段如何保证收集县城和用户线程互不干扰的运行
        • 回收过程中改变对象引用关系:通过原始快照SATB算法实现
        • 回收过程中创建新对象:使用单独的分区和指针TAMS保存新创建的对象
  • 四个步骤

    • 初始标记
      • 仅仅标记一下GC Root能够关联的对象(停顿一下)
    • 并发标记
      • 进行可达性分析,完成对象图扫描,判断存活对象和可回收对象
      • 处理STAB记录的是否有引用变动的对象
    • 最终标记
      • 暂时停顿,查看处理并发阶段结束后少量的SATB记录
    • 筛选回收
      • 根据统计的回收价值和成本并排序,筛选region进行回收
      • 使用标记复制的算法实现

总结

  • 这里是粗浅的理解,后续会在有补充,有很多问题都没有解决,包括怎么进行GC调优呀等等,都没有看!
http://www.15wanjia.com/news/161331.html

相关文章:

  • 学院做网站的意义网站php怎么做
  • 网络有限公司做女装网站的如何用kali做网站渗透
  • 锦州网站建设婚纱网站布局ppt怎么做
  • 南京网站开发询南京乐识简述网站开发岗位及职务
  • 网站的形式wordpress 个人 主题
  • 销售网站建设推广华夏名网网站管理助手
  • 网站搜索算法开发电商网站
  • 男的做直播哪个网站好数字化转型对企业的影响
  • 江苏华悦建设集团网站wordpress 4.7.2 被黑
  • 上海新闻手机网站seo优化
  • 国家建设官方网站2019建设摩托官方网站
  • 做网站怎么租用服务器吗公司网站ICP怎么备案呢
  • 庐阳网站快速排名营销型企业网站建设方案
  • 用flash做的网站欣赏开发板和单片机的区别
  • 网站后台图片传不上去怎么办自助建站免费建站
  • 自己制作网站的方法商丘互联网公司
  • 网站图片设置隐私保护怎么下载单品商城网站源码
  • 做碳循环的网站心知天气Wordpress
  • 越南做网站服务器wordpress 主题 更改
  • dedecms物流企业网站模板(适合快递京东网站怎么做
  • 帝国cms获取网站地址远憬建站
  • 上海当地网站怎样建立一个公司网站
  • 无锡网站商城建设设备网站模板
  • 广州北京网站建设电商网站开发建设
  • 佛山网站搜索引擎优化php企业网站程序
  • 导航 网站 分析帮人做彩票网站
  • 网站运营工资业余学做衣服上哪个网站
  • 阿里云做网站官网网站本科
  • 网站流量渠道百度站长自动推送wordpress
  • 帮建网站开封搜索引擎优化