当前位置:网站首页 > Java基础 > 正文

java小心机使用教程



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path> </svg> <blockquote> 

系列文章
java”小心机”(1)【资源彩蛋!】
java小心机(2)| 重载和构造器的小细节




  • 预备知识
    JNI(Java Native Interface),它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)

  • 概念
    finalize()是Object类中的一个方法,垃圾回收器准备释放对象占用的内存时,首先调用它的finalize()方法。

  • finalize()是否等同于C++中的析构函数?
    答案是否定的。
    析构函数:在C++中没有垃圾回收器,当对象需要被销毁时,需要手动调用delete()方法释放内存,而析构函数会在内存释放前被调用,用于释放对象使用的资源,比如在其中经常做一些文件保存之类的收尾工作。对象一定会被销毁。
    finalize():会在垃圾回收器准备释放对象内存时被调用,但垃圾回收并不一定发生,只有在濒临内存溢出时才会被调用;若内存一直充足,则永远不会被调用。如果这个程序结束了,垃圾回收器一直没有释放掉你创建的任何对象的存储空间,则随着程序的退出,那些资源也会全部交还给操作系统。











  • 作用
    1.释放那些不是通过new分配的内存
    在JNI技术中,可能会通过C语言的malloc()分配内存,这部分内存无法通过垃圾回收器释放,只能通过在finalize()中调用本地方法释放。
    2.用于检验终结条件(判断对象在清理时是否安全释放)
    下面看个用于检验终结条件的例子:










热门阅读:

end~thanks!

image

一个立志成大腿而每天努力奋斗的年轻人

伴学习伴成长,成长之路你并不孤单!

扫描二维码,关注公众号

 
  

  • 上一篇: java chm 教程
  • 下一篇: java变身教程
  • 版权声明


    相关文章:

  • java chm 教程2025-10-13 23:10:04
  • java教程1242025-10-13 23:10:04
  • java简介菜鸟教程2025-10-13 23:10:04
  • java freemarker使用教程2025-10-13 23:10:04
  • opencv教程 java语言版2025-10-13 23:10:04
  • java变身教程2025-10-13 23:10:04
  • java的swing包详细教程2025-10-13 23:10:04
  • java教程 极客2025-10-13 23:10:04
  • java 二级等级教程2025-10-13 23:10:04
  • java彩票教程2025-10-13 23:10:04