所谓GC就是 内存空间的释放
说起GC原理,先说几个术语.
垃圾: 需要回收的对象
根: 判断对象是否引用的起点

有哪几种基本实现方式:
1 标记清除方式
标记清除(Mark and Sweep)是最早开发出来的GC算法(1960年)。
原理: 从根部开始将可能被引用的对象进行标记,然后没有标记的对象作为垃圾进行回收.
缺点: 如果分配了大量对象,其中只有一小部分对象存活的情况下,所消耗的时间超过必要的值,这是因为在清除阶段还需要对大量死亡对象进行扫描.

2 复制收集方式
原理: 从根部将引用的对象复制到另一空间,然后再将复制的对象所引用的对象用递归的方式复制下去
优点: 复制收集方式的过程相当于只存在于标记清除方式中的标记阶段 , 由于 标记清除方式 清除阶段中需要对所有对象进行扫描,这样对存在大量对象并且有大量对象已死亡的情况下,必然会造成大量资源和性能没必要的开销而在复制收集方式中就不存在这样的开销。
缺点: 但是和标记相比,将对象复制一份的开销相对要大,因此在“存活“对象相对比例较高的情况下,反而不利。

3 引用计数法
原理: 对每个对象保存该对象的引用计数,当引用发生增减时,该计数进行增减
4 可达性分析
原理: 从根部开始,从这些节点往下分析,搜索所走过的路径为一条引用链,当一个对象没有任何链引用的时候,就证明这个对象是无用的

GC原理以及有哪几种工作方式相关推荐

  1. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  2. LVS原理详解(3种工作方式8种调度算法)

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...

  3. LVS原理详解(3种工作模式及8种调度算法)

    2017年1月12日, 星期四 LVS原理详解(3种工作模式及8种调度算法) LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法) 作者:woshiliwentong  发布日期:20 ...

  4. 【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)

    STM32F1xx官方资料: <STM32中文参考手册V10>-第8章通用和复用功能IO(GPIO和AFIO ) 芯片数据手册(datasheet) STM32的GPIO介绍 STM32引 ...

  5. LVS三种工作方式八种算法

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...

  6. ipvs负载均衡(三)ipvs三种工作方式

    IPVS负载均衡(三)IPVS三种工作方式之NAT模式 IPVS是LVS(Linux Virtual Server)项目重要组成部分,目前包含于官方Linux Kernel,IPVS依赖于netfil ...

  7. apache php 工作模式,PHP Apache中两种工作方式区别(CGI模式、Apache 模块DLL)

    搜索热词 对PHP在Apache中两种工作方式的区别(CGI模式.Apache 模块DLL)感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! Windows 下有两种方法使 ...

  8. linux 学习 vi简介; vi下三种工作方式。

    VI Visual Interface 三种工作方式 1.命令方式 应举例举,例我们在查询时 /session 时,其实就是在 命令模式下 按下 / 进行的. 2.输入方式 我们可以在这里对文件进行编 ...

  9. 7. 【可编程定时器8253】:外部引脚、内部结构特点、计数启动方式、6种工作方式、控制字格式、应用

    文章目录 计数与定时 8253芯片特点 1. 外部引脚 2. 内部结构特点(含3个计数器.1个控制寄存器) 2. 计数启动方式(软件启动.硬件启动的定义) 3. 6种工作方式 不能自动重复计数的工作方 ...

最新文章

  1. 小兵别嚣张,签名算法分析
  2. 吴恩达的Landing.ai又迎来一位AI大牛
  3. 一个正在加载网页的进度条,加载完后,自动消失?
  4. NAT概念解释(不完全版,但不会搞错...)
  5. 使用php与mysql构建我们的网站
  6. 2.Cocos2dx 3.2中的重力系统Box2D
  7. 解决vscode之前好好的能连接上linux服务器,后来报错,窗口出现故障
  8. 高仿人人Android梦想版终极源码发送(转)
  9. LeetCode 2092. 找出知晓秘密的所有专家(并查集)
  10. [6] ADB 文件管理
  11. 刷抖音18.5G、看视频22.5G,国美通报员工上班摸鱼:回应来了
  12. MySQL 半同步复制+MMM架构
  13. 理解Rails真实性令牌
  14. [软工]可行性分析报告
  15. 2022新版UI云购H5系统源码+完美运行/功能强大
  16. 设计模式(九)——代理模式(Proxy)
  17. Jackson ImmunoResearch通过 SDS-PAGE 进行蛋白质分离
  18. Python环境搭建(mac)
  19. 十行代码,我用Python做一个迷你版的美图秀秀!
  20. linux—jock

热门文章

  1. C语言 打印星星(三种方法)
  2. 【开发工具】【sysrq】魔术键(sysRq)的使用
  3. matlab组合排列数,MATLAB中常用的排列、组合、阶乘函数
  4. 对数坐标归一化_数据的归一化处理
  5. Linux三剑客详解带实验
  6. MybatisPlusInterceptor报错
  7. Android帧的产生(2)——FPS、Vsync和Triple Buffer
  8. ubuntu服务器怎么共享文件,Ubuntu怎么创建共享文件夹支持Windows访问?
  9. OpenCV图像处理-灰度处理
  10. 腾讯:休假至2月9日。2月10日-2月14日启动在家办公机制。