码迷,mamicode.com
首页 > 其他好文 > 详细

关于finalize机制和引用、引用队列的一些总结

时间:2014-09-22 18:15:43      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:finalize机制的总结   java的引用类型   引用队列   finalizer线程   

C++有析构函数这个东西,能够很好地在对象销毁前做一些释放外部资源的工作,但是java没有。Object.finalize()提供了与析构函数类似的机制,但是它不安全、会导致严重的内存消耗和性能降低,应该避免使用。best practice是:像java类库的IO流、数据库连接、socket一样,提供显示的资源释放接口,程序员使用完这些资源后,必须要显示释放。所以可以忘记Object.finalize()的存在。

 

关于引用和引用队列,java提供了4种引用类型,在垃圾回收的时候,都有自己各自的独特表现。ReferenceQueue是用来配合引用工作的,没有ReferenceQueue一样可以运行。创建引用的时候可以指定关联的队列,当GC释放对象内存的时候,会将引用加入到引用队列,这相当于是一种通知机制。当关联的引用队列中有数据的时候,意味着引用指向的堆内存中的对象被回收。

 

 

 

关于finalize机制和引用、引用队列的一些总结

标签:finalize机制的总结   java的引用类型   引用队列   finalizer线程   

原文地址:http://blog.csdn.net/aitangyong/article/details/39478261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!