2 u013370108 u013370108 于 2016.04.06 16:11 提问

关于java垃圾回收机制中的finalize方法

这里为什么没有触发finalize方法图片

5个回答

luochoudan
luochoudan   Ds   Rxr 2016.04.06 16:45
已采纳

回收integer,要调用integer的finalize()方法。你这里重写的是Gctest的finalize(),自然不会调用。自己定义个对象,重写它的finalize(),再试试。而且System.gc();只是通知jvm,回不回收完全看人家心情,就是调用了也未必会执行,要想看效果可加一下这句System.runFinalization()。

bingyulei007
bingyulei007   2016.04.06 16:24
finalize是对象销毁钱执行的,这里你想要回收的是integer对象,而你的finalized的方法是Gctest中的方法,当然不会触发到
sl_18500
sl_18500   2016.04.06 16:16
chenhchen1994
chenhchen1994   2016.04.06 16:17

你加了main() 方法吗。。。

CSDNXIAON
CSDNXIAON   2016.04.06 17:01

Java中垃圾回收机制finalize()
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java垃圾回收机制和finalize()方法
一、java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。        (1).对象不一定会被回收。        (2).垃圾回收不是析构函数。        (3).垃圾回收只与内存有关。        (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。
【Java】finalize()和垃圾回收机制
finalize()方法:一旦gc准备释放对象占用的存储空间,将首先调用finalize()方法,并在下一次垃圾回收动作发生时才会真正回收内存。可在此进行重要的清理操作。gc只能释放那些经由new分配的内存,对其他形式获得的内存无法释放。finalize()方法不一定会被调用,所以不能作为通用的清理方法。 它不是析构函数,C++中对象一定会被销毁(必须用到析构函数),而java 对象却并非总是被
Java中的 finalize() 与c++的析构函数 分析
《JAVA编程思想》: java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。       (1).对象不一定会被回收。        (2).垃圾回收不是析构函数。        (3).垃圾回收只与内存有关。        (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪
Java中的finalize方法理解
首先:system.gc()并不是你调用就马上执行的, 而是根据虚拟机的各种算法来来计算出执行垃圾回收的时间,另外,程序自动结束时不会执行垃圾回收的。 其次:对象被回收时,要经过两次标记,第一次标记,如果finalize被重写,或者finalize被调用过,那么垃圾回收并不会去执行finalize,第二次标记,如果对象不能在finalize中成功拯救自己,那真的就要被回收了。 咱们用的虚拟机一
关于system.gc()与finalize()方法
注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Jav
java中finalize()方法
1、对象的finalize()方法简介 当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。如果在程序终止之前垃圾回收器始终没有执行垃圾回收操作,那么垃圾回收器将始终不会调用无用对象的finalize()方法。在Java的Object祖先类中提供了protected类型的finalize()方法,因此任何Java类都可以覆盖finalize()方法,在这个方法中
Java中finalize()详解和Java9中的垃圾回收
java垃圾回收机制和finalize方法java垃圾回收机制Java有垃圾回收期负责回收无用对象占据的内存空间。但也有特殊情况:假定你的对象(并非使用new)获得了一块“特殊”的内存区域,由于垃圾回收期只知道释放那些经由new分配的内存,所以它不知道该如何释放该对象的这块“特殊”内存。Java允许在类中定义一个名为finalize()方法。一旦垃圾回收期准备好释放对象占用的内存空间,首先调用其f
面试题 java垃圾回收机制
前几天面试的时候被问到垃圾回收机制的时候,心里还庆幸这个之前看过,可是答完后就傻了,面试官竟然问还有没有。 好吧,我一直以为面试官是懂我说什么的,加上说的有点快,有点乱,很多东西都省略掉了,估计是我省略掉的被认为是我不懂的了。 所以组织一下语言,下次尽量说的清楚一点。。 内存回收机制: 内存回收就是释放掉在内存中已经没用的对象。 首先,要判断怎样的对象是没用的对象。这里有2种方法
在finalize方法中复活java对象
/** * 该类用于演示在对象的finalize()方法中复活对象(来自《实战java虚拟机》-葛一鸣) * 2017年4月4日 下午9:06:00 * @version v1.0 */ public class CanReliveObj { public static CanReliveObj obj; @Override protected void finaliz
Java垃圾回收机制理解
垃圾回收机制的理解。