• Java垃圾回收介绍(译)


    在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的。与C语言不同的是,在Java中开发者不需要专门为垃圾回收写代码。这是使Java流行的众多特征之一,也帮助了程序员写出了更好的Java应用。

    这是一个四部分的系列教程,以了解在Java中垃圾回收的基础,

    1. Java垃圾回收介绍
    2. Java垃圾回收如何工作?
    3. Java垃圾回收器的类型
    4. 监控和分析Java垃圾回收

    这篇教程是系列中的第一部分。本篇中会解释一些基本术语,像JDK,JVM,JRE,HotSpot VM,然后去理解JVM的架构和Java堆内存结构。在进入垃圾回收教程之前,理解这些基础的东西很重要。

    关键Java名词术语

    • Java API –是打包好库的集合,可以帮助开发者创建Java应用程序
    • Java Development Kit (JDK) – 是一个工具集,可以使开发者创建Java应用程序。JDK包括编译、运行、打包、发布和监控Java应用程序的工具。
    • Java Virtual Machine (JVM) – JVM是一个抽象的计算机器。Java程序根据JVM规范来编写。JVM是针对特定平台的,它将JAVA程序翻译成底层平台特定的指令去执行。JVM使得Java程序具有平台独立性。
    • Java Runtime Environment (JRE) – JRE由JVM实现和JAVA API组成。

    Java HotSpot 虚拟机

    每一个JVM实现可能在垃圾回收原则实现的方式上有所不同。在收购SUN之前,Oracle公司已经了又JRockit JVM,收购之后,又有了HotSpot JVM。现在Oracle同时维护两个JVM实现,Oracle也已声明,在经过一段时间后,这两个JVM实现会被整合成一个。

    HotSpot JVM是作为Oracle SE平台部分的一个核心部件。在这个垃圾回收教程中,我们会看到基于HotSpot虚拟机的垃圾回收原则。

    JVM 架构

    下图概述了一个JVM中的关键部件。在JVM架构中,与垃圾回收相关的两个主要部件是堆内存和垃圾回收器。堆内存是运行时数据区域,实例会被存在这,垃圾回收器也在该区域操作。

    现在我们知道这些东西是如何适应更大的计划。

    JVM-Architecture

    Java堆内存 Heap Memory

    理解在JVM内存模型中堆内存作用很重要。在运行时Java实例存放在堆内存区域。当一个对象不再被引用时,它有机会从堆内存中删除。在垃圾回收进程中,那些对象从堆内存中被去除,空间被回收。堆内存有三个区域,

    1. 年轻代Young Generation
      1. Eden区(任一实例进入运行时内存区)
      2. S0幸存区 (久一点的实例从eden区转移到S0)
      3. S1幸存区 (久一点的实例从S0区转移到S1)
    2. 年老代(实例从S1晋升)
    3. 持久代(包含元信息像类、方法细节)

    Java-Heap-Memory

    更新:持久代(PermGen)区从Java SE 8 特征中被移除了。

    在下一个部分中我们会看到关于在Java中垃圾回收是如何工作的

    查看原文

  • 相关阅读:
    CefSharp 屏蔽右键菜单
    CEfSharp下载文件 弹出保存框,实现 IDownloadHandler 接口
    C#使用Xamarin开发移动应用 ---- 系列文章
    浅析 fstab 与移动硬盘挂载方法
    树莓派设置固定IP地址
    win10 任务栏上的工具栏,重启消失的解决方法
    《丽人行》
    Chrome调试 ---- 控制台获取元素上绑定的事件信息以及监控事件
    Bootstrap基础学习 ---- 系列文章
    C#进阶系列 ---- 《CLR via C#》
  • 原文地址:https://www.cnblogs.com/jadic/p/4049456.html
Copyright © 2020-2023  润新知