java垃圾回收算法-入门级理解 忘是亡心i 2022-12-16 13:10 98阅读 0赞 # 1.标记-清除算法 # ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70][] 说明:对可回收的空间进行标记,回收垃圾时对已标记的空间进行回收。 优点:简单,快速 缺点:会产生不连续空间碎片。 # 2.复制算法 # ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70 1][] 说明:对内存空间进行分半,对其中一半进行使用,当空间不足时,将使用的那一步进行整理、回收后移动至未使用的另一半内存控件。 优点:不会产生不连续空间碎片,内存是整整齐齐的。 缺点:空间的浪费(会存在一半的空间浪费)、需要对内存进行移动存在风险 # 3.标记-整理算法 # ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70 2][] 说明:在回收前,对所有的可回收的内存进行标记,垃圾回收时,把存活的内存进行的整理,剩下的直接进行回收。 优点:不会产生不连续空间碎片,内存是整整齐齐的。 缺点:需要对内存进行移动存在风险 上面的回收机制都存在着各自的缺点,那么在java中gc用的哪种呢? 回答是:这三种方式配合的使用,组成了多种的回收机制策略。 在此前提,还需要了解一个东西,堆中的划分(新生代 - 老年代) 新生代 ====》 Eden :Survivor:Survivor 8:1:1 ====》 E :S1:S2 ====》 第一次GC E 和S1存活的放在 S2 ====》 第二次GC E 和S2存活的放在 S1 ====》 循环数次后 ====》 将存活次数超多15次(默认值,可配置)的空间,存放至老年代。 新生代 一般使用 (复制算法)minor GC 老年代 根据算法的不同,使用的算法也不同。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70 3][] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70]: /images/20221123/d538a310a38649f2bc79ee101d53047b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70 1]: /images/20221123/440c9f61289b4bfebfe4ab40686e5e34.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70 2]: /images/20221123/12214b5211074b96a6c1e2fb6f88070c.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc3MTkw_size_16_color_FFFFFF_t_70 3]: /images/20221123/85c4d4d147c747eaafeefc013e1d85d6.png
相关 Java垃圾回收算法理解及应用 Java的垃圾回收机制是Java虚拟机(JVM)设计的一部分,主要目的是自动管理内存中的不再使用的对象。 理解垃圾回收算法主要有以下几点: 1. 分代收集:Java将内存分 柔光的暖阳◎/ 2024年09月14日 20:12/ 0 赞/ 12 阅读
相关 Java垃圾回收算法理解与实践误区 在理解和实践Java垃圾回收(Garbage Collection,GC)时,可能会遇到一些误区。以下是一些常见的误解: 1. **频繁的GC是好事**:实际上,过度的GC会 矫情吗;*/ 2024年09月11日 07:18/ 0 赞/ 22 阅读
相关 Java垃圾回收算法理解与实践 Java垃圾回收(Garbage Collection,GC)是Java系统自动进行的一项内存管理机制。其主要目的就是通过标记和清理无用对象,达到释放内存的目的。 理解与实践 系统管理员/ 2024年09月10日 02:54/ 0 赞/ 20 阅读
相关 java垃圾回收理解与算法 垃圾回收机制概述 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管 - 日理万妓/ 2023年10月18日 16:43/ 0 赞/ 12 阅读
相关 java垃圾回收算法-入门级理解 1.标记-清除算法 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4 忘是亡心i/ 2022年12月16日 13:10/ 0 赞/ 99 阅读
相关 Java垃圾回收算法 1.无用对象的判定 引用计数法:给对象添加一个引用计数器,如果引用一次则加一,引用失效减一。 缺陷:相互引用时,导致计数器数值不为零,对象无法进行回收。 比如:在 布满荆棘的人生/ 2022年06月09日 06:06/ 0 赞/ 210 阅读
相关 Java垃圾回收算法 Java语言相对于其他语言最大的一个特点就是引入了垃圾回收机制,这样程序员在编写程序的时候不用再考虑申请或者释放内存,极大的增加了开发者的开发效率。虽然垃圾回收是由JVM虚拟机 今天药忘吃喽~/ 2022年05月28日 03:40/ 0 赞/ 258 阅读
相关 JAVA垃圾回收算法 1、标记 -清除算法(Mark-Sweep) “标记-清除”算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所 太过爱你忘了你带给我的痛/ 2022年03月20日 10:50/ 0 赞/ 228 阅读
还没有评论,来说两句吧...