GC垃圾回收的定义

GC是垃圾回收(Garbage Collection)的缩写

是指自动管理程序内存的机制,在使用gc的语言中程序员不需要手动分配内存和释放内存,

而是交由gc管理,

gc垃圾回收的定义:

垃圾的定义:

在GC中垃圾指的是那些不再被程序所使用的内存对象,这些对象不再被访问,也不再对程序的正确性产生任何影响,GC的任务是找到这些垃圾对象,并释放他们所占用的内存空间,以便程序使用这些内存空间。

垃圾的检测:

GC通过不同的算法来检测垃圾对象,其中常用的是计数算法和标记清除算法,引用计数算法会维护每个对象的引用计数,当某个对象的引用计数为0时,就可以视为垃圾并回收。

标记清除算法则会从程序的根对象出发,标记所有可以访问到的对象,然后清除未被标记的对象。

垃圾的回收:GC通过通过不同的方式来回收垃圾对象

其中最常用的是标记清除算法和复制算法

标记清除算法:

会标记所有可以访问到的对象,然后清除未被标记的对象

复制算法:

则会将内存空间分为两部分,每次只是用其中的一部分,当一部分被使用完后,将其中的存活对象复制到另一部分空间中,然后清除原空间的所有对象

GC的代价:

为了提高GC的效率,一些gc会将内存分为不同的代,每个代中对象具有不同的生命周期,通常会将新分配的对象放到新生代中,新生代使用复制算法进行垃圾回收,老年代中的对象则使用标记清除算法进行垃圾回收,

总之GC是一种自动管理内存的机制,可以帮助程序员避免内存泄漏等问题,不同的GC实现有不同的原理和算法,但其基本原理都是找出不再被程序使用的内存对象,并将其释放,以便程序继续使用。

相关推荐

  1. GC垃圾回收定义

    2023-12-16 22:46:04       55 阅读
  2. GC垃圾回收算法

    2023-12-16 22:46:04       40 阅读
  3. Go 垃圾回收GC

    2023-12-16 22:46:04       26 阅读
  4. JVM各种垃圾回收器(GC)

    2023-12-16 22:46:04       44 阅读
  5. GC垃圾回收算法

    2023-12-16 22:46:04       46 阅读
  6. GC-垃圾回收

    2023-12-16 22:46:04       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 22:46:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 22:46:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 22:46:04       82 阅读
  4. Python语言-面向对象

    2023-12-16 22:46:04       91 阅读

热门阅读

  1. 高级索引:整数索引 Python

    2023-12-16 22:46:04       49 阅读
  2. unordered_map使用

    2023-12-16 22:46:04       66 阅读
  3. Node-RED 规则引擎重构:添加自定义节点

    2023-12-16 22:46:04       57 阅读
  4. 低代码开发:是伪需求还是行业毒瘤?

    2023-12-16 22:46:04       57 阅读
  5. 使用VTK绘制瓶子的方法

    2023-12-16 22:46:04       57 阅读
  6. GO EASY 游戏框架 之 GRPC 扩展篇 04

    2023-12-16 22:46:04       50 阅读
  7. React Native面试题总结

    2023-12-16 22:46:04       56 阅读
  8. Zookeeper 集群搭建

    2023-12-16 22:46:04       58 阅读
  9. el-form validator传参

    2023-12-16 22:46:04       60 阅读
  10. N/八皇后问题(递归)

    2023-12-16 22:46:04       60 阅读