java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java垃圾回收机制

Java的垃圾回收机制实例分析

作者:cakincqm

这篇文章主要介绍了Java的垃圾回收机制,结合实例形式分析了垃圾回收机制的原理及相关操作技巧,需要的朋友可以参考下

本文实例讲述了Java的垃圾回收机制。分享给大家供大家参考,具体如下:

一 点睛

当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中,当这块内存不再被任何引用变量引用时,这块内存就变成了垃圾,等待垃圾回收机制进行回收。

垃圾回收机制的特点:

二 对象在内存中的状态

激活状态:当一个对象被创建后,有一个以上的引用变量引用它。则这个对象在程序中处于激活状态,程序可通过引用变量来调用该对象的属性和方法。

去活状态:如果程序中某个对象不再有任何引用变量引用它,它就进入了去活状态。在这个状态下,系统的垃圾回收机制准备回收该对象所占用的内存,在回收该对象之前,系统会调用所有去活状态对象的finalize方法进行资源清理,如果系统在调用finalize方法重新让一个引用变量引用该对象,则这个对象会再次变为激活状态;否则该对象将进入死亡状态。

死亡状态:当对象与所有引用变量的关联都被切断,且系统会调用所有对象的finalize方法依然没有使该对象变成激活状态,那这个对象将永久性地失去引用,最后变成死亡状态。只有当一个对象处于死亡状态时,系统才会真正回收该对象所占有的资源。

三 实战

1 代码

public class StatusTranfer
{
  public static void test()
  {
   String a = new String("轻量级Java EE企业应用实战"); //执行完该代码后,此处的字符串对象处于可达状态
   a = new String("疯狂Java讲义");  //执行完该代码,此处的字符串对象处于可达状态,上处字符串处于可恢复状态
  }
  public static void main(String[] args)
  {
   test();
  }
}

2 说明

一个对象可以被一个方法的局部变量引用,也可以被其他类的类变量引用,或被其他对象的实例变量引用。当某个对象被其他类的类变量引用时,只有该类被销毁后,该对象才会进入可恢复状态;当某个对象被其他对象的实例变量引用后,只有当该对象被销毁后,该对象才会进入可恢复状态。

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

您可能感兴趣的文章:
阅读全文