[译]Java 垃圾回收介绍
说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Introduction
在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的。和C语言不一样的是,开发中不需要在Java中写垃圾回收代码。这也是使Java更加流行而且帮助开发中写出更好的Java应用程序的Java特性之一。
下面是关于Java 垃圾回收的基础介绍的四个系列文章。
1.Java垃圾回收介绍
这篇文章是四个系列指南的第一部分。它将首先解释像JDK、JVM、JRE、HotSpot VM这样的名词,然后介绍JVM架构以及Java堆内存结构。因为在理解Java垃圾回收之前这些是一些了解的基础。
主要的Java名词
Java API:帮助开发者创建应用程序封装库的集合
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,但是在被Oracle收购之后,改成了HotSpot JVM。目前,Oracle拥有了这两个JVM的实现,而且他们声称经过一段时间之后他们会把这两个虚拟机的实现整合成一个。
HotSpot JVM已经作为了Oracle SE平台的核心组件的一部分。在这个垃圾回收指南中,我们将看到基于HotSpot虚拟机的垃圾回收机制。
JVM 架构
下面的这张图包含了在一个JVM中的核心组件。在一个JVM架构中,和垃圾回收相关的两个主要组件是堆内存和垃圾回收器。堆内存是运行时数据区,就是实例存放的地方并且由垃圾回收器来来管理。现在我们就来了解这些东西是如何在更大的设计中相适应的。

Java堆内存
理解对内存在JVM内存模型中角色是很有必要的。在运行时Java实例被存储在堆内存区。当一个对象不再被其他对象所引用的时候,它将会被从堆内存中回收。在垃圾回收进程中,这些对象被从堆内存中回收而且空间被释放。堆内存只要有三个主要的区域:
- 1.年轻代(Young Generation)
- 1.Eden Space(任何进入运行时内存都会经过Eden区)
- 2.S0 Surivior Sapce(从Eden移到S0的实例对象)
- 3.S1 Surivior Sapce(从S0移到S1的更老实例对象)
- 2.老年代(Old Generation ,从S1到的区域)
- 3.永久代(Permanent Generation,包含像类、方法详情的元数据信息)

更新:永久代(Permgen)区已经从Java SE8 功能被移除了
[译]Java 垃圾回收介绍的更多相关文章
- Java垃圾回收介绍(译)
在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的.与C语言不同的是,在Java中开发者不需要专门为垃圾回收写代码.这是使Java流行的众多特征之一,也帮助了程序员写出了更好的 ...
- [译]Java垃圾回收是如何工作的
说明:这篇文章来翻译来自于Javapapers 的How Java Garbage Collection Works 这部分教程是为了理解Java垃圾回收的基础以及它是如何工作的.这是垃圾回收系列教程 ...
- [译]Java 垃圾回收的监控和分析
说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Monitoring and Analysi 在这个系列的Java垃圾回收教程中,我们将看到可用于垃圾 ...
- Java GC系列(2):Java垃圾回收是如何工作的?
本文由 ImportNew - 伍翀 翻译自 javapapers. 目录 垃圾回收介绍 垃圾回收是如何工作的? 垃圾回收的类别 垃圾回收监视和分析 本教程是为了理解基本的Java垃圾回收以及它是如何 ...
- Java垃圾回收是如何工作的?
本教程是为了理解基本的Java垃圾回收以及它是如何工作的.这是垃圾回收教程系列的第二部分.希望你已经读过了第一部分:<Java 垃圾回收介绍>. Java 垃圾回收是一项自动化的过程,用来 ...
- [译]GC专家系列2:Java 垃圾回收的监控
原文链接:http://www.cubrid.org/blog/dev-platform/how-to-monitor-java-garbage-collection/ 这是"成为GC专家系 ...
- 【转载】Java垃圾回收机制
原文地址:http://www.importnew.com/19085.html Java垃圾回收机制 说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联 ...
- Java GC系列(1):Java垃圾回收简介
本文由 ImportNew - 好好先生 翻译自 javapapers. Java的内存分配与回收全部由JVM垃圾回收进程自动完成.与C语言不同,Java开发者不需要自己编写代码实现垃圾回收.这是Ja ...
- [牛感悟系列]JAVA(1)理解JAVA垃圾回收
理解JAVA垃圾回收的好处是什么?满足求知欲是一方面,编写更好的JAVA应用是另外一方面. 如果一个人对垃圾回收过程感兴趣,那表明他在应用程序开发领域有相当程度的经验.如果一个人在思考如何选择正确的垃 ...
随机推荐
- spring mvc中实现csrf安全防御简记
1.csrf是什么 csrf全称是Cross-site request forgery,http://en.wikipedia.org/wiki/Csrf 危害:使受害用户在不经意间执行了不是用户意愿 ...
- swift 笔记 (十九) ——
协议
协议(Protocols) 协议仅是用定义某些任务或者是功能必须的方法和属性. 类似于java里的interface的作用.但协议并不会实现详细的功能. 我猜这个名字源于OO中提到的"契约& ...
- SQL入门学习2-聚合与排序
3-1 对表进行聚合查询 聚合函数 所谓聚合,就是将多行汇总为一行. 函数名 功能 COUNT 计算表中的记录数(行数) SUM 计算表中数值列的数据合计值 AVG 计算表中数值列的数据平均值 MAX ...
- CSS截取字符串,额外的文本显示以省略号
最近的诀窍css还有这么叼炸天的侧~~~ 善待似论坛页面,头像70px,但username不限啊,English中国能够.你说如果他采取"我的名字是这么长啊.你该怎么办呢".那老和 ...
- 网络请求 http get post 一
Http 定义了与server交互的不同方法.最主要的方法有4种.各自是Get POST PUT DELETE ,URL 全称资源描写叙述符,我们能够这样觉得一个URL地址,一个URL地址,它用于描写 ...
- a web-based music player(GO + html5)
github 住址:https://github.com/codercheng/music-player 后台是用GO (windows/ linux 都能够),前端是HTML5 推荐用chrome浏 ...
- Play Framework + ReactiveMongo
Play Framework + ReactiveMongo Play!是一个full-stack(全栈的)Java/Scala Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate ...
- Android学习路线(十一)管理Activity的生命周期
当一个用户进入.退出,再次进入你的应用时,你的应用中的Activity 会在它的生命周期的各个状态下切换. 比如,当你的activity第一次启动.它出如今系统的前方接受用户的焦点.在这个过程中,An ...
- JavaScript技巧&写法
原文:JavaScript技巧&写法 JavaScript技巧篇: 1>状态机 var state = function () { this.count = 0; this.fun = ...
- myeclipse解决JSP文件script调整背景颜色
1进口MyEclipse主题后,打开jsp要么html文件,jsvascript部分原因遭遇了一层白色的.闪避这个时候.症状,如下面: watermark/2/text/aHR0cDovL2Jsb2c ...