标记清除算法其实和标记压缩算法其实非常相同,标记压缩算法是在标记清除算法之上,解决内存碎片化的问题,就是删不干净的问题,因为他的整个排序不是很好,标记压缩,有的地方叫做标记整理,都是一个意思,标记压缩算法其实和标记清除算法雷同,user1假如他是可达的,我们把它标红,我再给他一个user2,可达的,记住了标红是可达的,这个时候我再来一个对象,叫做user3,user3标做黑色的是不可达,user2也是可达的,这就是标记清除里面一个比较大的问题,他是对位置是没有任何排序的,删的时候会产生碎片化的问题,标记压缩怎么做我把可达和不可达做一个排序,我把可达对象排到一块,然后我把不可达对象再排到一块,我删的时候我怎么删呢,直接把不可达对象直接全删了就行了,这个可以解决碎片化的问题,压缩算法是把原先的对象做排序,加入user1和user2是进行关联起来的,user1引用user2的时候,user1和user2会排在一起,如果我再来一个user4,user4对象,假如user4也是黑色的,user4也是和user3放到一块的,然后user1和user3是放到一块的,删除的时候直接把不可达对象直接清理就可以了,这样的话就不会产生碎片化的问题,产生碎片化是因为什么原因呢,删的时候可能顺序不好,给他做一个排序,以解决碎片化的问题,这个其实是比较简单的

然后讲一个分代算法,分代算法就是把之前的标记清除啊,标记整理啊,还有复制算法,全部都整合在一起了,这就跟你们说一下,这个分代算法给你们讲一下,在这个地方会有一个知识点,我还是大体的给大家谈一下,Minor GC主要是做新生代回收的分代算法是根据新生代和老年代做了一个算法,比如新生代里面会使用Minor GC,就是这种算法,老年代Major GC 和 Full GC,它是针对老年代的回收,Full GC到底干嘛用的,Full GC也会回收永久区里面的,因为像你们之前的时候,会有一个问题,JVM的永久代会不会发生垃圾回收吗,我告诉你们,垃圾回收确实不会发生在永久代里面,但是永久代满的情况下,超出了临界线,看你的方法区配置了多大的,如果满了就会触发Full GC的,在JAVA8的时候,移除了永久代,新加了一个元数据区,叫做native内存区,垃圾回收算法其实是非常基础的知识

垃圾回收机制之标记压缩算法与分代算法相关推荐

  1. 垃圾回收机制之标记清除算法

    这个时候我来讲一下垃圾回收策略,主要分为这几种1. 标记清除算法就相当于给一个对象做一个标记,怎么做标记呢,其实是这样做标记的,比如举个例子,这个地方假如是堆内存,比如你创建一个对象的时候,User ...

  2. python垃圾回收机制为什么标记能解决循环引用问题_Python 垃圾回收机制和如何解决循环引用...

    引用计数:是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术, 当一个对象的引用被创建或者复制时,对象的引用计数加 1:当一个对象的引用被销毁时,对象的引用计数减 1:当对象的引用计数减少为 ...

  3. python垃圾回收机制为什么标记能解决循环引用问题_python 关于循环引用以及标记清除的问题...

    1 在循环引用的情况下,引用计数就不好事了,这时候就需要用到标记清除 循环引用的危害: 会造成内存溢出,因为循环引用计数不可能为零 解决方法: 标记清除 2 关于标记清除的效率问题(低) 引用计数引用 ...

  4. 26 Java GC算法 垃圾收集器、标记 -清除算法、复制算法、标记-压缩算法、分代收集算法

    26.Java GC算法 垃圾收集器 1.1.1标记 -清除算法 1.1.2复制算法 1.1.3标记-压缩算法 1.1.4分代收集算法 26.Java GC算法 垃圾收集器 概述 垃圾收集 Garba ...

  5. 简述Python垃圾回收机制

    引言 许多高级语言都具有自己的垃圾回收机制,以管理计算机内存,Python也不例外.对于垃圾回收机制的了解程度,成了开发人员是否真正了解Python的检验手段,在面试的时候许多面试官也喜欢以此作为题目 ...

  6. Python高级编程——13.垃圾回收机制

    垃圾回收(了解) 1.1 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 257 ...

  7. python垃圾回收机制

    python垃圾回收机制 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式.自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄 ...

  8. Python垃圾回收机制--完美讲解!!!!!

    欢迎关注WX公众号:[程序员管小亮] [Python - 100天从新手到大师] 虽然是自己转载的但是是真的好的一篇图文并茂的对垃圾回收机制的讲解!!! 先来个概述,第二部分的画述才是厉害的. Gar ...

  9. [转载]Python垃圾回收机制--完美讲解!

    虽然是自己转载的但是是真的好的一篇图文并茂的对垃圾回收机制的讲解!!! 先来个概述,第二部分的画述才是厉害的. Garbage collection(GC) 现在的高级语言如java,c#等,都采用了 ...

最新文章

  1. python类方法和实例方法syntax errors_Python 实例方法,类方法和静态方法
  2. 淡淡说说技术人员创业
  3. .net core 2.0学习记录(一):搭建一个.Net Core网站项目
  4. 开放共赢,华为云WeLink生态联盟正式成立!
  5. 【软件测试】黑盒测试の等价类划分法
  6. 使用effect的注意事项
  7. html标题代码字号,HTML 标题
  8. 中望龙腾(广州)c++实习
  9. 【drawio笔记】为Confluence Cloud使用自定义字体
  10. java挂黑链,挂黑链代码汇总
  11. 第15周-两个二阶二维矩阵相乘
  12. 获取二维元组的每一维数据
  13. win10服务器权限修改时间,大师为你解答win10系统时间无法修改没有权限的处理方案...
  14. 《 Android物联网开发从入门到实战》
  15. 图文:微博平台首席架构师杨卫华演讲
  16. Nintendo Switch和《塞尔达传说:旷野之息》绝对是一种乐趣
  17. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...
  18. list control双击事件编辑列表框
  19. 总结基础网络与Linux系统实操面试题
  20. CEO、CFO、CMO...这些职位你都知道吗?

热门文章

  1. Windows Phone Developer Tools 下载地址
  2. VS2010 IDE新特性随笔
  3. FileEncodingApplicationListener使用以及原理
  4. helloword,认真就输了
  5. Android Bundle类,通过bundle实现在两个activity之间的通讯
  6. 上传文件返回数据提示下载
  7. keepalived基础及使用DR模型构建一个real_server
  8. 如何启用和关闭数据库的Oracle归档模式
  9. ASP.NET(C#) 四舍五入、进一法、舍位(取整,舍去小数,向负无穷舍入)函数
  10. OpenDNS,独特的免费DNS