免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1155 | 回复: 0
打印 上一主题 下一主题

【飞加Java学习笔记_垃圾回收】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-16 15:12 |只看该作者 |倒序浏览
图文并茂格式请直接下载PDF:  飞加Java学习笔记_垃圾回收.pdf


  学习就要多问一些“为什么”和“怎么”,这样才有助于提高。这就是著名的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[]) {
  8.
    GarbageCollector t = new  GarbageCollector ();
  9.
    Computer newComputer=  t.makeComputer();
  10.
    System.out.println(“tempComputer所指向的对象可以被当作垃圾回收”);
  11.
    Computer  computer1=new Computer();
  12.
    Computer  computer2=new Computer();
  13.
    computer2=  computer1;
  14.
    Computer  computer3=new Computer();
  15.
    computer3=null;
  16.
    System.out.println(“computer3所指向的对象可以被当作垃圾回收”);
  17.
    computer1=null;
  18.
    System.out.println(“computer1所指向的对象不能被当作垃圾回收”);
  19.
  }
  20.
}
  在继续讨论之前,我们首先回顾JAVA的两个基本概念——引用和对象。引用类似于其它程序设计语言中的指针。引用就象一个商标标签或者指示牌,它上面写着物品的名称,比如“电脑”,可是它并不是电脑。当把这个标签贴到电脑上后,标签与电脑就联系起来,它就代表电脑了。因此Computer computer1=newComputer();可理解为先创建一个对象的标签computer1,然后把标签贴到新创建的对象Computer上。当创建的对象内没有任何标签指向它时,就可被当作垃圾进行回收。
  
基于例1中的第11行~第20行,我们分析一个JAVA对象什么时候处于“失去引用”状态从而满足被回收的条件。。(请直接下载PDF)


图文并茂格式请直接下载PDF:  飞加Java学习笔记_垃圾回收.pdf

飞加Java学习笔记_垃圾回收.pdf

184.33 KB, 下载次数: 57

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP