文章汇总:关于java的finalize,引用和引用队列,自动释放系统外部资源的一些文章

之前写过一篇博客,关于非堆内存如何自动释放的,由此慢慢延伸写了几篇关于垃圾回收、finalize机制、引用和引用队列、sun.misc.Cleaner相关的文章,通过这几篇文章感觉自己收获很大了,对java垃圾回收相关的知识了解更深刻了。这篇博客主要做个汇总和简介,按照自己思路的延伸,把博客汇总下,方便大家阅读和查看。


1、学习NIO时候,对于DirectByteBuffer堆外内存的自动释放,因此了第一篇博客

java中使用堆外内存,关于内存回收需要注意的事和没有解决的遗留问题(等大神解答)

http://blog.csdn.net/aitangyong/article/details/39323125


2、为了研究NIO是如何实现堆外内存自动释放的,产生了第二篇博客

System.gc()和-XX:+DisableExplicitGC启动参数,以及DirectByteBuffer的内存释放

http://blog.csdn.net/aitangyong/article/details/39403031


3、研究了NIO的自动释放机制之后,引出了finalize和sun.misc.Cleaner,有了第三篇文章

Effective Java Item7:Avoid Finalizers,解释为什么finalize是不安全的,不建议使用

http://blog.csdn.net/aitangyong/article/details/39450341


4、为了解决finalize的不足,学习了下java引用和引用队列的机制,有了第四篇文章

 java中的4种reference的差别和使用场景(含理论、代码和执行结果)

http://blog.csdn.net/aitangyong/article/details/39453365


5、最后利用前面学习到的理论,自己写了个自动释放堆外内存的代码,有了第五篇文章

使用sun.misc.Cleaner或者PhantomReference实现堆外内存的自动释放

http://blog.csdn.net/aitangyong/article/details/39455229


6、最近简单的做了个总结

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

http://blog.csdn.net/aitangyong/article/details/39478261



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。