在JVM 中,java 为我们提供可有效的垃圾回收机制,GC ,GC的创建无疑是为了缓解内存压力、保存有效数据、回收垃圾无效数据;

在此之前GC在我的理解中,一直只是个概念,内存中出现垃圾,GC来回收一下,处理下;但是对其内部如何定义一个对象是否是'垃圾'并不知晓!

昨天在工作的时候,为了理解native 关键字的使用的,顺便也看到了一些blog对它的认知见解,我也学习了一下,如下是我的总结,希望也能有所收获吧。

GC回收对象定义规则算法:

可达性分析算法:

先看图:【来源网友的blog ,做了下标注】

大家可能会对这个GC root 感兴趣了:我的理解是就是一个GC自己规定的有效对象根节点集合!!至于这个集合里面有啥玩意,能力不够,目前不在纠结!

然后从图上可以看出,从这个GC根集合里的所有元素(途中的GC roots 算一个元素)开始,网上查找被引用(指针含义类似)记录,所有被引用的对象都是有效对象,说明它还是有用的,不用回收;然后看object5 出来的应用,说实话,这个应用已经没有必要了,全部都是’‘没用的’对象,等待被GC回收吧!

以上就是我对可达性分析算法的初步理解。

等等!!!!!!!!!!!求救麦待。。。。。。。

突然要记录一下:目前大多数的JVM 使用的是

分代回收算法:将堆内存分为新生代和老年代。对这两部分分别使用不同的回收算法。

老年代中存放大对象和长期存活的对象,且对象较多,一般使用标记-清除算法或者标记-整理算法。[可达性分析算法做基础]

新生代存活对象较少,一般使用复制算法。

有的朋友会想到那具体的GC机制,如何回收这些对象内存的呢?以上红底色的算法查询下吧!!!

标签:JAVA,对象,回收,算法,GC,垃圾,可达性

来源: https://www.cnblogs.com/Ankermaker/p/10435847.html

java gc 可达性_JAVA--GC 垃圾回收机制----可达性分析算法相关推荐

  1. java中垃圾收集_Java中垃圾回收机制

    "猪能吃的是湿垃圾,猪不吃的是干垃圾,猪吃了会死的是有害垃圾,卖了能买猪的是干垃圾 ......"最近,上海人民都快被垃圾分类弄疯了.那作为程序员的你,知道在Java中是怎么垃圾回 ...

  2. java gc回收机制种类_JAVA的垃圾回收机制(GC)

    1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制. 2.什么时候 ...

  3. java 垃圾回收机制_Java的垃圾回收机制

    前言 在C++语言中, 程序员必须小心谨慎的处理每一项内存分配, 且内存使用完后必须手动释放曾经占用的内存空间.当内存释放不够完全时, 即存在分配但永不释放的内存块, 就会引起"内存泄漏&q ...

  4. java_opts gc回收器_JVM之垃圾回收机制(GC)

    JVM之垃圾回收机制全解(GC)文章底部有思维导图,较为清晰,可参考 导读:垃圾回收是Java体系中最重要的组成部分之一,其提供了一套全自动的内存管理方案,要想掌握这套管理方案,就必须了解垃圾回收器的 ...

  5. GC(Garbage Collection)垃圾回收机制

    垃圾回收机制: 主要三个任务:①分配内存,②确保被引用对象的内存不被错误的回收,③回收不再被引用的对象的内存空间 判断是否是可回收对象:(什么可以回收?) 使用有向图来记录和管理堆内存中的所有对象,通 ...

  6. 【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 )

    文章目录 一.Java 虚拟机内存分区 二.垃圾回收机制 三.引用计数器算法 ( 无法解决循环引用问题 ) 一.Java 虚拟机内存分区 Java 虚拟机内存分区 : 所有线程共有的内存区域 : 堆 ...

  7. java和net共同点,Java和.NET中的垃圾回收机制比较

    相同点: 都采用了分代的机制. 都支持并发GC. 都没有采用引用计数方式,而是采用了追踪技术. .NET中,可以通过代码GC.Collect() 强制要求CLR进行垃圾回收(由于垃圾回收是异步的,CL ...

  8. JVM虚拟机(四):JVM 垃圾回收机制概念及其算法

    垃圾回收概念和其算法 谈到垃圾回收(Garbage Collection)GC,需要先澄清什么是垃圾,类比日常生活中的垃圾,我们会把他们丢入垃圾箱,然后倒掉.GC中的垃圾,特指存于内存中.不会再被使用 ...

  9. jvm垃圾回收机制和常见算法

    这是朋友给的面试题里边的,具体地址已经找不到,只能对原作者说声抱歉了: 理论上来讲sun公司只定义了垃圾回收机制规则,而步局限于其实现算法,因此不同厂商生产的虚拟机采用的算法也不尽相同. GC(Gar ...

最新文章

  1. 经典笔试上机考题-表达式求值
  2. 【Java集合系列四】HashSet和LinkedHashSet解析
  3. 架构之美读书笔记03
  4. 引导程序为什么要org 07c00h
  5. java的static块执行时机
  6. GraphQL入门之GraphQL查询的规范
  7. 【2017-03-09】SQL Server 数据库基础、四种约束
  8. 模块(sys/os/序列化模块)
  9. .Net MVC Cache 缓存技术总结
  10. android 动画结束停留,循环动画 tween durationMillis = 90195 动画将停留在最后一针
  11. wps里面函数怎么使用_在WPS表格中怎么使用函数?WPS表格中使用函数公式的教程...
  12. 全网优惠券、红包获取api
  13. Latex录入参考文献bib.bib文件
  14. 数智化未来5大趋势——CDEC2020中国数字智能生态大会上海站生态伙伴发展状况调查...
  15. 大数据埋点那些事儿,手机 APP 是不是在偷听我说话?
  16. 群晖wordpress如何连接mysql,「全网首发」群晖wordpress二级目录下实现IP加端口访问教程...
  17. 相机光学(七)——光源
  18. 85寸电视机长宽是多少
  19. You can't take the sky from me
  20. 步进电机编码器适配的分享(步进电机闭环准备)

热门文章

  1. [leetcode] 300. Longest Increasing Subsequence (Medium)
  2. Python之实现常见算法
  3. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例...
  4. 滚动条组件 http://www.w3cfuns.com/notes/15098/96195b77bdbcb601590f67f971770bb8.html
  5. 【三】MongoDB文档的CURD操作
  6. Python学习笔记(迭代、模块扩展、GUI 、编码处理等)
  7. MVC Razor视图引擎控件
  8. Opengl编程指南第二章:状态管理、几何绘图
  9. 【转载】关于网页尺寸的设置
  10. MFC用PostMessage传递消息