下载后可任意编辑java 垃圾回收机制的工作特征解析 关键词:java 虚拟机;垃圾收集;垃圾收集器 摘要:垃圾收集是 java 语言区别于其他程序设计语言的一大特色
但是目前多数的 java 书籍有关垃圾收集的内容几乎没有或只做了非常简单的介绍
本文从多个方面分析了 java 的垃圾回收机制,使学习者能够对该机制产生一个全面的认识
java 的堆是一个运行时数据区,类的实例从中分配空间,堆中存储着正在运行的应用程序建立的所有对象
垃圾回收是一种动态存储管理技术,它自动释放不再被程序引用的对象,根据特定的垃圾收集算法来实现资源的自动回收
一般来说,堆的回收是由垃圾收集器负责的,尽管 jvm 法律规范并不要求特别的垃圾回收技术,但是由于内存的有限性,jvm 在实现的时候都有一个由垃圾回收所管理的堆
一、垃圾回收及其意义 正在运行的程序中被引用的对象处于存活状态,不再被引用的对象就是通常所说的垃圾,查找并释放垃圾对象所占用内存空间的过程称为垃圾收集
在 java 中,当没有对象引用指向分配给某个对象的内存时,该内存便成为垃圾
jvm 的一个系统级线程会自动释放该内存
除了释放没有用的对象,垃圾收集也可以清除内存记录碎片
由于创建对象和释放对象所占的内存空间,内存会出现碎片
碎片整理将所占用的堆内存移到堆的一端,将整理出的内存分配给新的对象
垃圾收集机制有如下优点:首先,它能使编程效率提高
在没有垃圾收集机制的时候,可能要花许多时间来解决一个难懂的存储器问题,而使用 java 的垃圾收集机制可大大节约时间
其次,它能避开内存渗漏体的产生,保护程序的完整性,垃圾收集是 java 语言安全性策略的一个重要组成部分
垃圾收集的一个潜在的缺点是它的开销影响程序性能
java 虚拟机必须追踪运行程序中有用的对象,并且释放没用的对象
这一个过程需要花费处理器的时间
其次垃圾收集算法