A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余宏 中级黑马   /  2012-5-17 21:22  /  1667 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 余宏 于 2012-5-17 21:32 编辑

public void test(){
Object obj = new Object();
//被执行的代码;
Obj=null; //此处有作用吗 ?如何才能将该程序更优化?
}
要是像下面这样呢?有什么不一样?
public void test(){
Object obj = new Object();

Obj=null;

//被执行的代码;

}

3 个回复

倒序浏览
Obj=null;
这句话最大用途就是将obj的指针指向置为空,这样做等于告诉java虚拟机new Object()这个堆中的对象已经成废物了,可以进行销毁了
回复 使用道具 举报
这样做的好处就是优化了程序,减少了不必要的内存消耗。使java垃圾回收器在回收时能够早点处理掉这些废物数据。
回复 使用道具 举报
这个是肯定有区别的,你的要执行的代码那部分如果需要obj指向一个非null对象的话
Obj=null; 这句肯定不能放在要执行的代码上面的

如果要执行代码需要用到Obj=null; 的话
那Object obj = new Object(); 这句又变成废话了


Object obj = new Object();
//被执行的代码;
Obj=null; //要说这也有些用的,断开了变量与对象之间的联系,缩短了对象的生命周期,让垃圾回收机制尽快回收
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马