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