- 热门文章:
- · 用JBuilder开发一个简单J2EE 应用
- · J2EE标准部署文件
- · JBoss的安装
- · 关于对J2EE几点误解和错误认识的澄清
- · 为什么要使用EJB?
- · EJB 3.0开发指南之使用实体Bean
- · EJB概述(下)
- · EJB概述(上)
- · 开发EJB(下)
- · 几种主要EJB Container的介…
- · 从JSP调用EJB
- · EJB Interface
上一篇:Java图像处理技巧四则 >>
提高java程序性能之垃圾收集
email:cherami@163.net
原文:http://developer.java.sun.com/developer/TechTips/2000/tt0411.html
Java使用垃圾收集或者说回收不再使用的内存的技术而不需要你明确的管理储存。垃圾收集是自动的,但是在有些情况下可以有办法辅助这个过程。想像一下你在管理一个对象引用的堆栈:
public class Stack {
private static final int MAXLEN = 10;
private Object stk[] = new Object[MAXLEN];
private int stkp = -1;
public void push(Object p) {stk[++stkp] = p;}
public Object pop() {return stk[stkp--];}
}
现在考虑堆栈中有两个元素,而且你从中取出一个,在这个时候,堆栈中的 stk[0] 将保存一个有效的元素,而 stk[1] 保存的是刚刚取出的元素。也就是stk[1] 是一个对象的引用,它可能是任何对象的引用,包括可能是一个大的包含上千个字节的数据结构的引用。在这个情况下,这个结构不能被垃圾收集掉,即使它可能永远都不再被使用。
为了纠正这个问题,可以像下面那样重写pop方法:
public Object pop()
{
Object p = stk[stkp];
stk[stkp--] = null;
return p;
}
你没有使该对象自身无效,而仅仅是对它的一个引用不再有效。堆栈对象自身可能还有很长的生存期,而像那样重写pop方法可以帮助确保垃圾收集及时的完成。
下一篇:用JBuilder开发一个简单J2EE 应用 >>
相关文章:
- · 全面研读 EJB 2.0(上)
- · 全面研读 EJB 2.0(下)
- · 全面研读 EJB 2.0(中)
- · 用JAVA实现MSN Messager的功能
- · 把 P2P 进行到底:Jxta的故事
- · 浅谈即时战略游戏J2ME中应用(转贴)
- · J2ME与Web Service-KSOAP快速上手
- · 一个MIDP俄罗斯方块游戏的设计和实现
- · 10种无线技术全接触 (10)
- · Java 2 Micro Edition简介(…
- · Nokia设奖鼓励Java应用程序…
- · 上海关注无线Java
- · 在无线J2ME设备上实现超文本…
- · 在以CLDC為基礎的架構上分析…
- · Java中的cookie管理方案(4)…
- · Java中的cookie管理方案(1)…
- · jdk5.0 在linux下字体文件的处理(设置默认字体)
- · 利用JAVA操作EXCEL文件(JAVA EXCEL API)
- · Webcast Offers First Look at New PowerBuilder 9.0 @ JDJ
- · jsp的5个不足之处
- · XML在B/S架构开发中的应…
- · 为什么jsp不能取代servl…
- · 分析java+xml的开发成功…
- · 运用你的Strut(1)
- · 利用Struts结合Jbuilder…
- · JSP白皮书
- · Spring WebFlow :重用与抽象框架 4(Spring MVC和WebFlow作为基础…
- · Spring WebFlow :重用与抽象框架 3(WebFlow实现重用)
- · Spring中WebApplicationContext的研究(转 laoer的,感觉写的不错,值得一读)
- · Hibernate获得成功的十大理由
- · webwork+jstl开发页面
- · Hibernate入门 - 包作用详解
- · Hibernate Iterator JCS分析
- · Hibernate为什么成功的
- · Hibernate入门 - Transacti…
- · Hibernate O/R映射三大基本…
- · Gavin King对Hibernate3的规…
- · Java开源项目Hibernate快速…
