服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - JAVA教程 - 简单介绍Java垃圾回收机制

简单介绍Java垃圾回收机制

2021-03-05 14:50mengwei JAVA教程

这篇文章主要介绍了简单介绍Java垃圾回收机制,涉及一些相关的Java术语,Hotspot虚拟机,jvm体系结构等内容,具有一定借鉴价值,需要的朋友可以参考下。

java的内存分配与回收全部由jvm垃圾回收进程自动完成。与c语言不同,java开发者不需要自己编写代码实现垃圾回收。这是java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写java程序。

这篇教程是系列第一部分。首先会解释基本的术语,比如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实现和javaapi。

javahotspot虚拟机

每种jvm实现可能采用不同的方法实现垃圾回收机制。在收购sun之前,oracle使用的是jrockitjvm,收购之后使用hotspotjvm。目前oracle拥有两种jvm实现并且一段时间后两个jvm实现会合二为一。

hotspotjvm是目前oraclese平台标准核心组件的一部分。在这篇垃圾回收教程中,我们将会了解基于hotspot虚拟机的垃圾回收原则。

jvm体系结构

下面图片总结了jvm的关键组件。在jvm体系结构中,与垃圾回收相关的两个主要组件是堆内存和垃圾回收器。堆内存是内存数据区,用来保存运行时的对象实例。垃圾回收器也会在这里操作。现在我们知道这些组件是如何在框架中工作的。

简单介绍Java垃圾回收机制

java堆内存

我们有必要了解堆内存在jvm内存模型的角色。在运行时,java的实例被存放在堆内存区域。当一个对象不再被引用时,满足条件就会从堆内存移除。在垃圾回收进程中,这些对象将会从堆内存移除并且内存空间被回收。堆内存以下三个主要区域:

新生代(younggeneration)

eden空间(edenspace,任何实例都通过eden空间进入运行时内存区域)

s0survivor空间(s0survivorspace,存在时间长的实例将会从eden空间移动到s0survivor空间)

s1survivor空间(存在时间更长的实例将会从s0survivor空间移动到s1survivor空间)

老年代(oldgeneration)实例将从s1提升到tenured(终身代)

永久代(permanentgeneration)包含类、方法等细节的元信息

简单介绍Java垃圾回收机制

永久代空间在java8特性中已经被移除。

总结

以上就是本文关于简单介绍java垃圾回收机制的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://www.importnew.com/13504.html

延伸 · 阅读

精彩推荐