关于Object=null
来源:互联网 发布:淘宝的香奈儿是正品吗 编辑:程序博客网 时间:2024/05/21 21:47
有些情况下,object = null是可以辅助GC的。比如:
public static void reuseSlot2(){ MemoryLeakDemo.printMemoryInfo("before"); { byte[] data = new byte[6*1024*1024]; //或者通过set null,主动回收 //赋null值在JIT编译之后会被消除掉,这个时候将变量设置为null是没有意义的 //实际上JIT编译成本地代码后,gc可以正常回收掉,无需多余操作 data = null; } MemoryLeakDemo.printMemoryInfo("after assign 6M,before gc"); System.gc(); MemoryLeakDemo.printMemoryInfo("after gc"); }
赋null值在JIT编译之后会被消除掉,这个时候将变量设置为null是没有意义的,实际上JIT编译成本地代码后,gc可以正常回收掉,无需多余操作。
另外,当方法结束后,脱离作用域之后,相应的局部变量引用会自动被注销掉。
小结:
当遇到局部代码段中已经申请许多占用空间的对象,这些对象在其作用域内的后续代码中还需要执行相对较长的时间,并且这块内存的确在后面就不会再使用了的时候,可以手工将一些大对象的引用设置为null,这样一来,GC很快就会认为它是垃圾。通常,在这种情况下将对象的引用设置为null才会对JVM有好处。
如果代码跑的很快,对象可以很快脱离作用域,在这样的场景下将引用设置为null是没有必要的,那样只会让代码很难看。
0 0
- 关于Object=null
- 关于代码 "object = null" 的讨论
- 关于Object被Destroy之后,该Object的原引用==null的问题
- 关于Object被Destroy之后,该Object的原引用==null的问题
- Null Object
- NULL Object
- 关于PinnedHeaderExpandableListView使用的时候on a null object reference
- 【编程素质】关于equals引发的null object reference异常
- object = null 等效与 string.IsNullOrEmpty(object.ToString() )吗 ?
- Object o;和Object o = null; 的区别
- 关于c#代码Convert.ToChar(null);出现异常,而object obj = null; Convert.ToChar(obj);//返回'\0'空字符问题详解
- object.equals(null)和object==null有什么区别
- object.equals(null)和object==null有什么区别
- Null Object 设计模式
- Null Object设计模式
- NULL OBJECT 模式
- 五. Null Object模式
- 五. Null Object模式
- 毫秒级百万数据分页存储过程
- launcher界面下google文件夹的修改
- PHP的内存限制 Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in
- Survivor空间溢出实例
- MySql事务无法回滚的原因
- 关于Object=null
- 麒麟开源堡垒主机在等保上的合规性分析
- WebView的使用
- 纯代码实现 AutoLayout 使用第三方框架 Masonry
- Android开发笔记之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- centos中nginx按日期自动分割访问日志
- 微信支付:商户订单号重复
- Java线程与Xss
- ACdream 1412 2-3 Trees 递推