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

询问:关于JAVA的garbage collector

    来源: 互联网  发布时间:2015-02-03

    本文导语:  大家先看看这道题目: class Happy {  public static void main(String args[]) {   Happy h=new Happy();  h.methodA();   }   Object methodA() {   Object obj1=new Object();   Object []Obj2=new Object[1];   obj2[0]=obj1;   obj1=null;   return obj2...

大家先看看这道题目:

class Happy { 
public static void main(String args[]) { 
 Happy h=new Happy(); 
h.methodA(); 
 } 
 Object methodA() { 
 Object obj1=new Object(); 
 Object []Obj2=new Object[1]; 
 obj2[0]=obj1; 
 obj1=null; 
 return obj2[0]; 
 } 

Where will be the most chance of garbage collector invoked? 

a) After line no.9 
b) After line no.10 
c) After line no.11 
d) Garbage collector never invoked in this method. 
e) Compilation error. 

其实一般来说,JAVA是在什么情况下会自动调用GC呢?
谢谢

|
同意ender的说法,即GC的自动调用发生在下列情况:
1。想要在java堆分配中分配新的空间,却发现空间不够;
2。分配永久对象时;
但是不能选d,因为不能保证在程序中不出现内存空间不够的情况;由于这里问的是最可能出现自动调用GC的地方,因此每一个new都有嫌疑,不理解为什么会选a,他没有给出解释吗?
BTW:此程序编译通不过,Object []Obj2=new Object[1]; 中的Obj2应为obj2。

|
应该选D,因为函数中new 了两个对象,一个是Object对象obj1,一个是Object类型的数组对象obj2,并且将数组的第一个成员指向obj1,然后返回数组的第一个成员,所以没有对象在这个函数的调用中会(或者说有可能)被回收。GC的调用是不确定的,不是内存不够就去回收没有用的对象,ender(ender)第二句说错了,具体你可以参考java的文档。
网上有人说选a,但网上的答案并不能保证,他并没有说出理由,是吗?好多Mock Exam上的答案都有错的!

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 通过jsp打开word文件,怎样去掉打开前的询问框?
  • VI编辑器有逐个询问替换的功能吗?
  • 询问下,SOLARIS10下如何通过命令行修改时区,多谢各位!
  • 散分,上午过的SCJP, 询问各位同人SCJD的情况。
  • 询问学习方向
  • 询问关于JAVA类库的问题
  • 讨论:询问上海的IT行情
  • 有个较笨问题询问高手
  • 询问一个proftp的问题
  • 询问gcc的一个编译选项
  • 菜鸟询问关于Unix版本的问题
  • 菜鸟询问Vmware配置问题
  • Linux备份方案询问
  • 请教毕业设计相关题目询问各位高手。。
  • 开发工具询问
  • 未装samba却可以访问windows网络,询问其访问机制
  • 菜鸟询问:学习linux主要的方向?
  • 询问 mount --bind 问题
  • 驱动询问!
  • 询问一个TCPDUMP语法问题 在抓TCP包时不能指定IP吗?


  • 站内导航:


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

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

    浙ICP备11055608号-3