stop the word暂停所有用户线程
判断垃圾对象对象是否被引用引用计数可达性分析原理GC root对象向下搜索引用链,对象跟gcroot不存在引用链相连则作为垃圾对象GCroot的范围方法区中的静态变量,常量本地方法引用的对象java虚拟机栈的一些引用,如基本数据类型的class对象同步锁的对象反应虚拟机内部情况的对象动态加入的GCROOT,如跨代引用的对象引用强引用软引用内存溢出时候回收,如果回收内存还不够,就会直接回收这些对象弱引用虚引用
虚拟机实现细节(加快垃圾收集,保证垃圾收集的正确)根节点枚举根节点枚举查找引用链是非常耗时的在虚拟机加载运行过程中维护根节点枚举引用链集合oopmap,这样在回收的时候减少stop the world时间,也不需药每次都从方法区等根节点查找引用链安全点oopmap记录内容变化的特定位置垃圾回收确定了引用关系,不会在回收完之后尽量少的又增加新增的垃圾数据,抢断中断,主动中断安全区域被拉伸的安全点,理解为,在这个区域内OOPmap不会变化,程序不执行的时候,未给程序分配处理器时间记忆集合缩小gcroot的范围,非手机区域指向手机区域不需要整个遍历老年代来确定引用链关系记录跨代用用的内存块关系特殊标识脏页,级存在快带引用的内存集合写屏障记忆集合变脏发生在赋值的那一刻aop确立写屏障伪共享不采用无条件写屏障当已经变脏就不去维护变化了并发的可达性缩短标记时间,并发的时候可以标记三色:未被垃圾收集器方位,访问,且存在引用,访问,但还有被引用的的对象没进过垃圾收集器范文
回收算法标记-清除缺点:执行效率不稳定,当存在大量的数据对象时候,需要花费大量的时间进行标记跟清除需要清除的对象内存地址并不是连续的物理内存地址,所以经过标记清楚算法之后,会产生大量的空间碎片,大量的空间碎片会导致后续在分配大对象时候,由于找不到连续的足够欧的内存来分配,而不得已进行fullgcCMS专属老年代算法标记-复制将存货的对象复制到内存的一边,然后直接清楚另外的内存缺点;存在大量对象的时候,会复制大量的对象,所以适合亲声带8:2,eden跟surrvivor,from to。新生代算法,在标记复制期间都会暂停整个用户线程有哪些算法serwn new 穿行手机praleel 收集器,并行并行收集器标记整理将存活的对象整理到内存的一端,然后直接清楚另外一端的内存有哪些算法serwn old 穿行手机rarallel old,并行在整理过程中会暂停用户线程stop the word暂停所有用户线程判断垃圾对象对象是否被引用引用计数可达性分析原理GC root对象向下搜索引用链,对象跟gcroot不存在引用链相连则作为垃圾对象GCroot的范围方法区中的静态变量,常量本地方法引用的对象java虚拟机栈的一些引用,如基本数据类型的class对象同步锁的对象反应虚拟机内部情况的对象动态加入的GCROOT,如跨代引用的对象引用强引用软引用内存溢出时候回收,如果回收内存还不够,就会直接回收这些对象弱引用虚引用虚拟机实现细节(加快垃圾收集,保证垃圾收集的正确)根节点枚举根节点枚举查找引用链是非常耗时的在虚拟机加载运行过程中维护根节点枚举引用链集合oopmap,这样在回收的时候减少stop the world时间,也不需药每次都从方法区等根节点查找引用链安全点oopmap记录内容变化的特定位置垃圾回收确定了引用关系,不会在回收完之后尽量少的又增加新增的垃圾数据,抢断中断,主动中断安全区域被拉伸的安全点,理解为,在这个区域内OOPmap不会变化,程序不执行的时候,未给程序分配处理器时间记忆集合缩小gcroot的范围,非手机区域指向手机区域不需要整个遍历老年代来确定引用链关系记录跨代用用的内存块关系特殊标识脏页,级存在快带引用的内存集合写屏障记忆集合变脏发生在赋值的那一刻aop确立写屏障伪共享不采用无条件写屏障当已经变脏就不去维护变化了并发的可达性缩短标记时间,并发的时候可以标记三色:未被垃圾收集器方位,访问,且存在引用,访问,但还有被引用的的对象没进过垃圾收集器范文回收区域minor GC(新生带)eden区不满major Gc (老年代)老年代不满full GC(整个堆)system.gc大对象优先分配到老年代,如果不足,maoir gc,还是租fullgc新生代历次晋升的平均大小大于老年代的可用空间代销,fullgc(,空间分配担保为false)空间分配担保,如果是吐热《如果新生代的总内存,大于老年的连续可用内存,则fullgc方法区不足G1收集器java堆划分为连续多个大小相等的regoin根据每次回收region的大小以及时间维护统计信息根据用户设定的最大时间,通过统计信息分析,回收哪些regoin效益最大,时间成本最接近,过程初始标记鬓发标记重新标记筛选回收
回收区域minor GC(新生带)eden区不满major Gc (老年代)老年代不满full GC(整个堆)system.gc大对象优先分配到老年代,如果不足,maoir gc,还是租fullgc新生代历次晋升的平均大小大于老年代的可用空间代销,fullgc(,空间分配担保为false)空间分配担保,如果是吐热《如果新生代的总内存,大于老年的连续可用内存,则fullgc方法区不足
G1收集器java堆划分为连续多个大小相等的regoin根据每次回收region的大小以及时间维护统计信息根据用户设定的最大时间,通过统计信息分析,回收哪些regoin效益最大,时间成本最接近,过程初始标记鬓发标记重新标记筛选回收

java回收算法学习相关推荐

  1. java排序算法学习(一)--冒泡排序

    package com.tw.ds.sort; /** *<p>java数据结构之:冒泡排序方法 *冒泡排序算法的一般性策略:搜索整个值列,比较相邻元素,如果两者的相对次序不对,则交换它们 ...

  2. java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)

    java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...

  3. 6种java垃圾回收算法_学习java垃圾回收

    垃圾回收(GC)一直是Java受欢迎背后的重要特性之一.垃圾回收是Java中用于释放未使用的内存的机制.本质上,它追踪所有仍在使用的对象,并将剩下的标记为垃圾.Java的垃圾回收被认为是一种自动内存管 ...

  4. 垃圾回收算法与实现系列-学习GC之前的准备工作

    导语   在学习垃圾回收算法之前,首先需要了解什么是Heap.什么是Root.什么是Object.什么是Stack.什么是Pointer,这写概念都是什么,为什么要在垃圾回收算法中使用,使用这些东西有 ...

  5. 【JVM学习笔记】内存回收与内存回收算法 就哪些地方需要回收、什么时候回收、如何回收三个问题进行分析和说明

    目录 一.相关名词解释 垃圾收集常用名词 二.哪些地方需要回收 本地方法栈.虚拟机栈.程序计数器 方法区 Java堆 三.什么时候回收 1. 内存能否被回收 内存中的引用类型 引用计数算法 可达性分析 ...

  6. java jvm垃圾回收算法_深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法

    本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 喜欢的话麻烦点下Star哈 文章将同步到我的个人博客: www.how ...

  7. 【JVM从小白学成大佬】4.Java虚拟机何谓垃圾及垃圾回收算法

    在Java中内存是由虚拟机自动管理的,虚拟机在内存中划出一片区域,作为满足程序内存分配请求的空间.内存的创建仍然是由程序猿来显示指定的,但是对象的释放却对程序猿是透明的.就是解放了程序猿手动回收内存的 ...

  8. 被说烂了的Java垃圾回收算法,我带来了最“清新脱俗”的详细图解

    一.概况 理解Java虚拟机垃圾回收机制的底层原理,是系统调优与线上问题排查的基础,也是一个高级Java程序员的基本功,本文就针对Java垃圾回收这一主题做一些整理与记录.Java垃圾回收器的种类繁多 ...

  9. 了解java虚拟机—垃圾回收算法(5)

    引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...

最新文章

  1. 深入理解JVM(二)--垃圾收集算法
  2. 堆排序——HeapSort
  3. codeblocks无法打开文件kernel32.lib
  4. Reactor中的Thread和Scheduler
  5. java character类
  6. 中间表该怎么查询_「日语四级」日语四级准考证号忘了怎么查成绩
  7. java webengine_webview – JavaFX 8 WebEngine:如何从java到console.log()从java到System.out?
  8. Q120:PBRT-V3,“直接光照”积分器(14.3章节)
  9. 献给时尚男女的61句最酷口语(转)
  10. java项目中使用kettle的JNDI连接配置
  11. Photoshop照片模糊变清晰大全
  12. E4A易安卓Apost提交文本合并编码相关
  13. Cloudera Manager 理论
  14. 郑州java工程师待遇怎么样_Java工程师工资待遇怎么样?
  15. android studio资源二进制,我如何从二进制转换为Java中的十进制(使用android studio)...
  16. 显卡的指标有哪些方面_显卡的几个主要的性能指标有()
  17. Space Cloud updated Crack
  18. Qt5:报错error: 'tr' was not declared in this scop
  19. JAVA输出希腊union,希腊十大旅游胜地(上)
  20. 无监督学习——K均值聚类的Python实现

热门文章

  1. 怎样在Mac上查看已保存的iPhone Wi-Fi密码?
  2. iPhone查看WiFi密码(篇章一)
  3. 理解radiance irradiance
  4. 来自ThoughtWorks的敏捷团队角色定义
  5. 如何从无脑传话筒到高阶人才
  6. 《动物园之星》给模拟经营游戏带来了什么
  7. 关于python中的复数类型、下列说法错误的是_关于 Python中的复数,下列说法错误的是( )_学小易找答案...
  8. 【学习总结】在重庆北大青鸟能让我看到希望和学习的动力!
  9. 1.2379软性退火硬度
  10. 计算机铁道工程论文,铁道工程专业毕业论文