当前位置:  技术问答>java相关

一道SCJP的垃圾收集器的问题.

    来源: 互联网  发布时间:2015-06-24

    本文导语:  运行以下代码: import java.io.*; public class Testgc{ public static void main(String args[]){ try{ TestFinalize tf = new TestFinalize(); tf.finalize(); tf = null; Runtime runtime = Runtime.getRuntime(); runtime.gc(); System.out.println("...

运行以下代码:

import java.io.*;
public class Testgc{
public static void main(String args[]){

try{
TestFinalize tf = new TestFinalize();
tf.finalize();
tf = null;

Runtime runtime = Runtime.getRuntime();
runtime.gc();

System.out.println("Just returned from garbage collection");
} //end try
catch(java.lang.Throwable throwable){
System.out.println("Catch exception in Testgc.java");
} //end catch
} //end main
} //end Testgc class

class TestFinalize{
protected void finalize() throws Throwable{
System.out.println("Hey, I'm in TestFinalize finalize()");;
}
} //end TestFinalize()

可能的输出是:
共有3个正确的答案:
1
Hey, I'm in TestFinalize finalize()
Just returned from garbage collection
2
Hey, I'm in TestFinalize finalize()
Hey, I'm in TestFinalize finalize()
Just returned from garbage collection
3
Hey, I'm in TestFinalize finalize()
Just returned from garbage collection
Hey, I'm in TestFinalize finalize()

为什么会出现这3种结果呢?


|
因为runtime.gc();调用后并不一定会马上执行。
答案1、
    执行完tf = null;这以后,表明对象tf可以被回收,并在调用runtime.gc();以后被回收,因此finalize()只被执行了一次,所以。。。。
答案2、
    执行完tf = null;这以后,表明对象tf可以被回收,且系统在这时回收,调用一次finalize(),接着又人工调用了runtime.gc();finalize()又被执行了一次,所以。。。。
答案3、
同上面差不多,只是很“巧”而已。

————————————————————————
如有不对之处,。。。。。还请大家指正。 :)
————————————————————————

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一道送分的问题
  • 一道考验基础的JAVA语法题
  • 问个AIX题库的一道题,感觉答案应该是A啊
  • 关于构造函数的一道题
  • 初中计算机老师给我们出过一道题,那时候印象很深
  • 一道基础英语填空题(Java)
  • 问一道SCJP的题目
  • SCJP 模拟题一道
  • scjp考题一道
  • scjp考题一道!!!!!!!!
  • 一道SCJP的题
  • 一道SCJP题有请各大虾指教.
  • 一道题,select what & why?
  • 一道关于操作系统的题
  • 问一道算法题
  • 一道习题
  • 一道小程序有问题?请教!
  • 一道scjp的题目
  • 一道scjp模拟题,请赐教。
  • 关于操作系统的一道题目(关于临时文件)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3