java垃圾回收算法

垃圾回收是对堆内存里的没有任何引用指向的对象进行回收

垃圾确定方式:1.引用计数

                          2.正向可达(使用这个)

垃圾回收算法:

1.标记-清除(Mark-Sweep)

      此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片

2.复制(Copying)

      将内存分成两份,每次GC都会重新整理使用的一半的内存区域,并赋值给另一半,效率提高,但是浪费了内存。

3.标记-整理(Mark-Compact)

      结合了前两个算法的优点,第一步标记,第二步整理。

4.分代(Generational Collecting)

      基于对对象生命周期分析后得出的垃圾回收算法。把对象分为年青代、年老代、持久代,对不同生命周期的对象使用不同的算法

你可能感兴趣的:(java垃圾回收算法)