菜鸟问题,望大虾帮忙! JAVA收集器的机制,当它运行时(通常在系统内存低到一定限度时自动运行),会回收不再使用的对象所占用的内存,所以不一定在什么时候回收,这和jvm的回收垃圾的算法又关系。所以不是不会调用,而是还没有回收,还没有调用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 finalize(),在对象被最终撤消并释放内存之前由java自动调用!F f = new F(),对象已经实例化并占用内存了。你要想调用finalize(),可以这样:F f = new F();f=null;System.gc(); to moumouren(某某人):但是我的上述代码会调用finalize()的呀!System.gc();不是用来强迫垃圾回收(执行finalize())的吗??? System.gc();不是用来强迫垃圾回收的,它只是激励jvm进行垃圾回收也就是说gc只是建议jvm回收垃圾,至于jvm是否立即回收,那就要看jvm是否愿意了! 那每次运行上面代码都会调用finalize()又怎么解释呢?谢谢!!! public static void main()这句有问题吧。应该是:public static void main(String args[]) 还有其它的,上面说的很清楚了。 你在运行new F();时只是相当于在内存中临时占用了一块空间来新建一个对象,但是它没有句柄,所以System.gc();运行时就认为这个已经没有用了,要求jvm收回资源;所以调用finalize(); so, I see!谢谢大家,尤其是 sgdb(神天月晓) ! 在服务器上如何将客户端上传过来的io流封装成文件? 求几个数的最大两个值? hibernate 中如何读取数据库中值为null的字段 关于java数组默认值的问题 一个新手的问题! 拜师学习啊````求一高手带我 发帖技巧,试验中》》》 JAVA技术相关书籍5折出售(共11本) 编译出错,看看你知不知道是什么错误 搞了一上午了,客户端还是没有特殊权限 求帮助啊 哥哥姐姐好!愚弟问个不知深浅的问题 如何去掉JTable的托拽列交换顺序的特性??
F f = new F(),对象已经实例化并占用内存了。
你要想调用finalize(),可以这样:
F f = new F();
f=null;
System.gc();
但是我的上述代码会调用finalize()的呀!System.gc();不是用来强迫垃圾回收(执行finalize())的吗???
也就是说gc只是建议jvm回收垃圾,至于jvm是否立即回收,那就要看jvm是否愿意了!
谢谢!!!
还有其它的,上面说的很清楚了。
谢谢大家,尤其是 sgdb(神天月晓) !