`
lovnet
  • 浏览: 6865663 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Java虚拟机学习 - 垃圾收集算法

 
阅读更多

1. 标记 - 清除算法

标记清除算法是最基础的收集算法,其他收集算法都是基于这种思想。标记清除算法分为“标记”和清除”两个阶段:首先标记出需要回收的对象,标记完成之后统一清除对象。

它的主要缺点:

①.标记和清除过程效率不高

②.标记清除之后会产生大量不连续的内存碎片。




2. 复制算法

它将可用内存容量划分为大小相等的两块,每次只使用其中的一块。当这一块用完之后,就将还存活的对象复制到另外一块上面,然后在把已使用过的内存空间一次清理掉。这样使得每次都是对其中的一块进行内存回收,不会产生碎片等情况,只要移动堆订的指针,按顺序分配内存即可,实现简单,运行高效。

主要缺点:

内存缩小为原来的一半。




3. 标记- 整理算法

标记操作和“标记-清除”算法一致,后续操作不只是直接清理对象,而是在清理无用对象完成后让所有存活的对象都向一端移动,并更新引用其对象的指针。

主要缺点:

在标记-清除的基础上还需进行对象的移动,成本相对较高,好处则是不会产生内存碎片。




4. 引用计数算法

引用计数收集器采用的是分散式管理方式,通过计数器记录对象是否被引用。当计数器为0时说明此对象不在被使用,可以被回收。

主要缺点:

循环引用的场景下无法实现回收,例如下面的图中,ObjectC和ObjectB相互引用,那么ObjectA即便释放了对ObjectC、ObjectB的引用,也无法回收。sunJDK在实现GC时未采用这种方式。



本文原文链接:http://blog.csdn.net/java2000_wl/article/details/8022293转载请注明出处!

分享到:
评论

相关推荐

    【Java正来-Java虚拟机专题】-Java垃圾收集器与内存分配策略

    主要整理内容为:分析了垃圾收集的算法和JDK1.7中提供的7款垃圾收集器的特点以及运作原理。以及内存分配策略

    1_Java虚拟机(垃圾收集器和算法).pdf

    本文详细探讨了JVM中的垃圾收集器和垃圾收集算法,以帮助开发者深入理解Java虚拟机的内部运作机制。 垃圾收集(GC,Garbage Collection)是JVM的一个重要功能,用于自动释放不再使用的对象所占用的内存空间,以防止...

    基于嵌入式Java虚拟机的垃圾收集优化算法应用.pdf

    5. 垃圾收集优化算法:为了提升嵌入式Java虚拟机的性能,研究者们提出了多种垃圾收集优化算法。这些算法可能包括改进标记-清除(Mark-Sweep)、复制(Copying)、标记-压缩(Mark-Compact)等基本垃圾收集算法,或者...

    基于实时性的Java虚拟机垃圾收集算法

    ### 基于实时性的Java虚拟机垃圾收集算法:深入解析与优化 #### 引言 垃圾收集(Garbage Collection, GC)是Java语言的重要特性之一,它通过自动化管理内存,减轻了程序员处理内存分配与释放的负担,提高了代码的...

    深入java虚拟机.pdf

    Java 虚拟机提供了多种垃圾收集算法,如标记-清除算法、复制算法、标记-压缩算法等。 七、Java 虚拟机的优点 Java 虚拟机提供了一个平台无关的环境,允许 Java 程序在不同的操作系统和硬件平台上运行。Java 虚拟机...

    Java虚拟机jre-1_5_0_08-windows

    同时,Java的垃圾收集机制也在这个版本中得到了优化,提高了应用程序的性能和内存管理效率。 总结起来,"Java虚拟机jre-1_5_0_08-windows-i586-p-s"是一个面向Windows 32位系统的Java运行环境,它包含了一个优化过...

    深入java虚拟机 中文版 pdf

    《深入Java虚拟机》这本书是IT领域中关于Java虚拟机(JVM)的深度解析之作,主要聚焦于JVM的工作原理、内部结构以及优化技巧。Java虚拟机作为Java语言的核心组件,其性能直接影响到Java应用程序的运行效率。因此,对...

    2015-09-12-Java虚拟机详解----JVM常见问题总结【面试必问】

    Java虚拟机(JVM)是Java程序运行的核心组件,它负责解释执行字节码并管理内存。本篇文章将深入探讨JVM的一些常见问题,这些内容对于理解和优化Java应用程序至关重要,同时也是面试中的高频考察点。 一、JVM内存...

    揭秘Java虚拟机-JVM设计原理与实现

    10. **性能优化**:通过分析JVM的各种监控工具(如JConsole、VisualVM等),学习如何定位性能瓶颈并进行调优,包括堆大小调整、垃圾收集器选择、JVM参数设置等。 通过阅读这本书,开发者不仅能理解JVM的基本运作...

    java虚拟机中的垃圾收集GC.pdf

    ### Java虚拟机中的垃圾收集(GC)运行机制及种类 #### 概述 垃圾收集(Garbage Collection,简称GC)是Java虚拟机(JVM)自动管理内存的重要功能之一。通过自动识别并回收不再使用的对象所占用的内存空间,GC极大地...

    java虚拟机学习

    学习Java虚拟机对于深入理解Java程序的执行机制至关重要。这里我们将深入探讨Java虚拟机的几个关键知识点。 1. 类加载机制:Java程序的执行始于类加载。JVM有三个主要的类加载器——bootstrap classloader、...

    基于实时性的Java虚拟机垃圾收集算法.pdf

    "基于实时性的Java虚拟机垃圾收集算法" 本文介绍了一种基于实时性的Java虚拟机垃圾收集算法,该算法旨在减少垃圾收集带来的不确定性暂停,并使用户可以指定一个时间段内垃圾收集导致应用程序暂停的最长时间。该算法...

    Java虚拟机垃圾收集算法的研究和改进.pdf

    Java虚拟机(JVM)垃圾收集算法是Java语言的关键特性之一,负责自动管理内存,提高软件的可靠性,并减少开发者的内存管理负担。垃圾收集机制(GC)的核心目标是识别并回收程序中不再被引用的对象,即所谓的垃圾回收...

    理解虚拟机--有笔记版

    不同的JVM实现采用不同的垃圾回收算法,常见的算法有标记-清除、标记-整理、复制、分代收集等。 Java虚拟机规范定义了JVM在执行Java程序时必须遵守的行为准则,它包括类文件格式、字节码指令集、执行引擎的行为等。...

    22 深入拆解 Java 虚拟机-20200406T052847Z-001.zip

    Java虚拟机(JVM)是Java程序运行的核心组件,它为Java代码提供了跨平台的运行环境。深入理解JVM的工作原理对于优化Java程序性能、排查问题以及提升开发能力至关重要。以下将详细介绍JVM的主要组成部分、内存模型、...

    理解JAVA虚拟机-内存管理、垃圾收集器.pptx

    Java虚拟机(JVM)是Java程序运行的核心,它负责管理程序的内存,包括内存的分配、使用和回收。在深入理解JVM内存管理和垃圾收集器之前,我们需要先了解JVM内存模型的基本结构。 内存模型主要包括以下几个部分: 1...

    java虚拟机源码-DeepInJVM:深入理解Java虚拟机第二版

    Java虚拟机是Java平台的核心组成部分,它是Java程序运行的环境,负责解释执行字节码,并提供垃圾收集、内存管理、线程调度等关键功能。深入理解JVM可以帮助开发者优化代码性能,解决内存泄漏、性能瓶颈等问题。 ...

Global site tag (gtag.js) - Google Analytics