飞加 Java 学习笔记_垃圾回收 联系方式: fly2ca@126.com
奔跑着的飞加,不知道路的尽头在那里,只知道向前、向前.....
学习就要多问一些“为什么”和“怎么”,这样才有助于提高。这就是著名的 5W2H 理论!
一、JAVA 垃圾回收机制概述
针对这种情况,JAVA 语言建立了垃圾回收机制。JAVA 是纯粹的面向对象的编程语言,其
程序以类为单位,程序运行期间会在内存中创建很多类的对象。这些对象在完成任务之后,
JAVA 的垃圾回收机制会自动释放这些对象所占用的空间,使回收的内存能被再次利用,提高
程序的运行效率。垃圾回收不仅可以提高系统的可靠性、使内存管理与类接口设计分离,还
可以使开发者减少了跟踪内存管理错误的时间,从而把程序员从手工回收内存空间的繁重工
作中解脱出来。
JAVA 垃圾回收机制另一个特点是,进行垃圾回收的线程是一种低优先级的线程,在一个
Java 程序的生命周期中,它只有在内存空闲的时候才有机会运行。
下面本文从“对象的失去引用”和“对象离开作用域”这两个方面进行分析,探讨 JAVA
程序中的对象什么时候可以被当作垃圾来进行回收。
二、对象的失去引用
通过下面的一段 JAVA 程序(例 1),我们可以讨论程序中的对象是否已经符合垃圾回收
的条件。请注意,我们只是讨论某个对象是否符合被回收的条件,这并不意味着该对象将被
立即回收,关于这一点,本文后面还将进一步说明。
例 1:
1. class Computer{ }
2. public class GarbageCollector {
3. Computer makeComputer() {
4. Computer tempComputer = new Computer ();
5. return tempComputer;
6. }
7. public static void main (String args[]) {