Java GC系列(1):Java垃圾回收简介 (我爱分享)
来源:互联网 发布:检测僵尸粉软件 编辑:程序博客网 时间:2024/04/30 06:47
Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。
原文链接: javapapers 翻译: ImportNew.com- 好好先生
译文链接: http://www.importnew.com/13504.html
[ 转载请保留原文出处、译者和译文链接。]
下面四篇教程是了解Java 垃圾回收(GC)的基础:
- 垃圾回收简介
- 圾回收是如何工作的?
- 垃圾回收的类别
- 垃圾回收监视和分析
这篇教程是系列第一部分。首先会解释基本的术语,比如JDK、JVM、JRE和HotSpotVM。接着会介绍JVM结构和Java 堆内存结构。理解这些基础对于理解后面的垃圾回收知识很重要。
Java关键术语
- JavaAPI:一系列帮助开发者创建Java应用程序的封装好的库。
- Java 开发工具包 (JDK):一系列工具帮助开发者创建Java应用程序。JDK包含工具编译、运行、打包、分发和监视Java应用程序。
- Java 虚拟机(JVM):JVM是一个抽象的计算机结构。Java程序根据JVM的特性编写。JVM针对特定于操作系统并且可以将Java指令翻译成底层系统的指令并执行。JVM确保了Java的平台无关性。
- Java 运行环境(JRE):JRE包含JVM实现和Java API。
Java HotSpot 虚拟机
每种JVM实现可能采用不同的方法实现垃圾回收机制。在收购SUN之前,Oracle使用的是JRockit JVM,收购之后使用HotSpot JVM。目前Oracle拥有两种JVM实现并且一段时间后两个JVM实现会合二为一。
HotSpot JVM是目前Oracle SE平台标准核心组件的一部分。在这篇垃圾回收教程中,我们将会了解基于HotSpot虚拟机的垃圾回收原则。
JVM体系结构
下面图片总结了JVM的关键组件。在JVM体系结构中,与垃圾回收相关的两个主要组件是堆内存和垃圾回收器。堆内存是内存数据区,用来保存运行时的对象实例。垃圾回收器也会在这里操作。现在我们知道这些组件是如何在框架中工作的。
Java堆内存
我们有必要了解堆内存在JVM内存模型的角色。在运行时,Java的实例被存放在堆内存区域。当一个对象不再被引用时,满足条件就会从堆内存移除。在垃圾回收进程中,这些对象将会从堆内存移除并且内存空间被回收。堆内存以下三个主要区域:
- 新生代(Young Generation)
- Eden空间(Eden space,任何实例都通过Eden空间进入运行时内存区域)
- S0 Survivor空间(S0 Survivor space,存在时间长的实例将会从Eden空间移动到S0 Survivor空间)
- S1 Survivor空间 (存在时间更长的实例将会从S0 Survivor空间移动到S1 Survivor空间)
- 老年代(Old Generation)实例将从S1提升到Tenured(终身代)
- 永久代(Permanent Generation)包含类、方法等细节的元信息
永久代空间在Java SE8特性中已经被移除。
在本系列的第二篇将会介绍Java垃圾回收是如何工作的。
原文链接: javapapers 翻译: ImportNew.com- 好好先生
译文链接: http://www.importnew.com/13504.html
[ 转载请保留原文出处、译者和译文链接。]
0 0
- Java GC系列(1):Java垃圾回收简介 (我爱分享)
- Java GC系列(2):Java垃圾回收是如何工作的? (我爱分享)
- Java GC系列(1):Java垃圾回收简介
- Java GC系列(1):Java垃圾回收简介
- Java GC系列(1):Java垃圾回收简介
- Java GC系列(1):Java垃圾回收简介
- Java GC系列(1):Java垃圾回收简介
- Java的GC(垃圾回收)简介
- Java GC专家系列1:理解Java垃圾回收
- Java GC专家系列1:理解Java垃圾回收
- Java GC(垃圾回收)
- Java GC(垃圾回收)
- Java GC(垃圾回收)
- Java GC(垃圾回收)
- Java垃圾回收(GC)
- java垃圾回收(GC)
- [译]GC专家系列1:理解Java垃圾回收
- Java GC系列(3):垃圾回收器种类
- Java 位运算(移位、位与、或、异或、非)
- 实时定时器C实现
- KeepAlive详解
- 第七章 更灵活定位内存地址
- js生成word
- Java GC系列(1):Java垃圾回收简介 (我爱分享)
- 黑马程序员——面向对象(一)---面向对象、函数的参数传递、static、内部类、文档注释
- Oracle not in查不到应有的结果(NULL、IN、EXISTS详解)
- 删除某天前的文件
- Java GC系列(2):Java垃圾回收是如何工作的? (我爱分享)
- Sql,linq.lambada用法
- 实现自动备份
- Error: Previous operation has not finished; run 'cleanup' if it was interrup
- Linux 软RAID命令