GC垃圾回收的定义

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

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

而是交由gc管理,

gc垃圾回收的定义:

垃圾的定义:

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

垃圾的检测:

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

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

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

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

标记清除算法:

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

复制算法:

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

GC的代价:

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

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

你可能感兴趣的:(笔记,java,算法,开发语言)