jvm的GC算法总结

简介: jvm的GC算法总结

   上篇文章了解了jvm的内存模型,那么问题来了:为什么要分区、分代管理呢?也就是jvm对于内存的管理的依据是什么?

   答案是:类和对象的生命周期。

   对象是根据类创建出来的。对象的生命周期就是包含在类的生命周期中:
       类加载(5步)——创建类的实例对象——使用对象——对象回收——类卸载

   

   jvm基于生命周期进行了两方面的管理:分配内存,回收内存。

   1、分配内存是在类加载的时候以及程序运行的时期。

       类加载的过程是怎么样的?(请戳这里)    

   2、回收内存就是垃圾回收,把没用的对象所占的空间回收,也发生在程序运行时期及卸载时期。

   

   什么样的对象是要被回收的?如何找到被回收的对象。这里有两种方式:

   1.引用计数法:对一个对象计数,引用一次加1,若计数为0,表示此对象需要被回收。存在的问题:循环引用。

   2.可达性分析:若从GC Roots出发,通过引用链能到达的对象是可达对象,也就是对程序来说有用的对象,反之,不可达就是垃圾对象,需要被垃圾收集器回收的对象。

   垃圾回收的方法论是垃圾回收算法,而具体执行垃圾回收的是垃圾收集器。

   垃圾收集算法共4种:

       1.标记-清除:

       2.复制:

       3.标记-整理:

       4.分代回收:此算法是把堆区进行了分代管理,分为Young(Eden,survive 0,survive 1),Old。不同的区域用不同的回收算法,也就是不同的垃圾收集器。

   那么问题来了:什么区用什么算法?什么垃圾收集器?

       先了解一下垃圾收集器都有哪几种?

       共七种://TODO待完善

   现在再来理解什么区用什么算法及什么垃圾收集器。

       //TODO:待完善


相关文章
|
26天前
|
安全 算法 Java
HotSpot中GC算法的实现
HotSpot中GC算法的实现
15 0
|
1天前
|
存储 缓存 监控
JVM工作原理与实战(三十四):解决GC问题的方法
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了常见的垃圾回收(GC)模式、解决GC问题的方法(优化基础JVM参数、减少对象产生、更换垃圾回收器、优化垃圾回收器的参数)等内容。
|
1天前
|
Prometheus 监控 Cloud Native
JVM工作原理与实战(三十三):监控GC过程的工具
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了jstat工具、VisualVM插件、Prometheus + Grafana、GC日志等内容。
11 0
|
1天前
|
监控 负载均衡 算法
JVM工作原理与实战(三十二):GC调优
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了GC调优、GC调优的核心指标等内容。
|
1天前
|
Arthas 监控 算法
JVM工作原理与实战(二十五):堆的垃圾回收-垃圾回收算法
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了垃圾回收算法评价标准、标记清除算法、复制算法、标记整理算法、分代垃圾回收算法等内容。
13 0
JVM工作原理与实战(二十五):堆的垃圾回收-垃圾回收算法
|
2天前
|
Java 程序员 Python
JVM的垃圾回收机制(GC机制)
Java的JVM实行自动垃圾回收机制(GC),主要针对堆中的对象。当对象无引用可达时,被视为垃圾。垃圾回收包含“找垃圾”和“回收垃圾”两步。找垃圾通过引用计数(非Java使用)和可达性分析(Java使用)来识别无用对象。可达性分析从根对象开始遍历,未被标记的对象视为垃圾。回收垃圾常用标记清除方法,但可能导致内存碎片。此过程消耗资源,且碎片化影响内存分配效率。
|
14天前
|
算法 Java
JVM 垃圾回收算法(重要)
JVM 垃圾回收算法(重要)
|
1月前
|
存储 缓存 算法
深度解析JVM世界:垃圾判断和垃圾回收算法
深度解析JVM世界:垃圾判断和垃圾回收算法
|
2月前
|
存储 算法 Java
精华推荐 | 【JVM深层系列】「GC底层调优专题」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)
精华推荐 | 【JVM深层系列】「GC底层调优专题」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)
57 0
|
2月前
|
算法 Java UED
【JVM】分代收集算法:提升Java垃圾回收效率
【JVM】分代收集算法:提升Java垃圾回收效率
23 0