垃圾回收器 垃圾回收器在执行时与finalize方法有什么关系啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Object已经实现了一个默认的,除非我们要实现特殊的功能(这里面涉及到很多东西,比如对象空间树等内容)。 不过用Java以外的代码编写的Class(比如JNI,C++的new方法分配的内存),垃圾回收器并不能对这些部分进行正确的回收,这时就需要我们覆盖默认的方法来实现对这部分内存的正确释放和回收(比如C++需要delete)。 总之,finalize相当于析构函数,他是垃圾回收器回收一个对象的时候第一个要调用的方法。不过由于Java的垃圾回收机制能自动为我们做这些事情,所以我们在一般情况下是不需要自己来手工释放的。 可参考http://www.phome.asia/forum/thread/22686.html 应该是可能会调用finalize方法吧。 垃圾回收器回收对象时会调用该对象的finalize方法。finalize()不一定在对象终结时被调到,比如执行System.exit(0),所有对象都会销毁,但是它们的finalize()没有被调到。 所以为保险起见,不应该在finalize()里面做一些释放资源的操作。 2种事件的区别? 高分 求java写的 高斯模糊处理图片的例子(不能掉用现有的API) 要有算法和代码 3Q 解决再送50分 怎样用正则表达式进行替换? 这个问题没有搞的定! 很简单的问题,给出答案都有分!! 高手指点: 如何编写java程序获得当前网络的基本信息,如:数据通信量等 求助:各位帮个忙,分大大地有!! 哪位老兄有rose的中文使用说明。 display error message 关于import一个类的问题 java 如何根据ip获得城市啊? 新手菜鸟报道~奋斗从此开始!
不过用Java以外的代码编写的Class(比如JNI,C++的new方法分配的内存),垃圾回收器并不能对这些部分进行正确的回收,这时就需要我们覆盖默认的方法来实现对这部分内存的正确释放和回收(比如C++需要delete)。
总之,finalize相当于析构函数,他是垃圾回收器回收一个对象的时候第一个要调用的方法。不过由于Java的垃圾回收机制能自动为我们做这些事情,所以我们在一般情况下是不需要自己来手工释放的。 可参考http://www.phome.asia/forum/thread/22686.html