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

那位高手为我解释一下

    来源: 互联网  发布时间:2014-12-31

    本文导语:  When will the object created as myObject become eligible for deletion? class example  {  public static void main( String args[] )  {  UseObject();  }  private void UseObject()  {  String anObject = AllocateObject();  System.out.println( anObject );  ...

When will the object created as myObject become eligible for deletion? class example 

public static void main( String args[] ) 

UseObject(); 

private void UseObject() 

String anObject = AllocateObject(); 
System.out.println( anObject ); 

private String AllocateObject() 

String myObject = new String( "When will I be deleted?" ); 
return myObject; 

}; 

  A. When the AllocateObject() function completes 
  B. When the call to System.out.println() completes 
  C. When the UseObject() function completes 
  D. When the main program completes 

我认为 myObject 在AllocateObject 中产生,AllocateObject 结束了,myObject就没有用了,所以我选A, 可是答案是 C ,烦劳高手为我解释一下 


|
Maybe you misunderstand what is myObject.

In java, everything is an object which you should new it if you want it (except those of primitive type, such as integer...).

In your code, myObject and anObject are not string object but are two string object reference pointing to a same string object you created in you AllocateObject() method.

So, when you quit AllocateObject, the released is not an string object created from heap, but a reference variable allocated from stack.

Since your anObject reference keep reference to this string object, It can not be collected by garbage collector untill anObject variable is released.

Furthmore, It doesn't mean this string object has been collected if nobody reference it. The collection depends on the resource usage. and garbage collector do it in the lazy collection way.

    
 
 

您可能感兴趣的文章:

  • 高手帮忙解释
  • 哪位高手能替兄弟解释一下,Struts是怎么回事?
  • 项目中需要读写条形码,哪位高手给解释一下
  • 请高手帮我解释一下这段代码!!!
  • 哪位高手可以解释下Linux的消息机制吗?谢谢
  • VMWare下的给虚拟机添加串口的问题?菜鸟请高手解释
  • 高手请解释一下什么是“添加到主机路由”
  • 哪位高手能解释下gmake 的depend命令
  • 我是新学者,那位高手能解释一下什么是挂载点?它又有什么作用?
  • 一个UNIX操作系统是由那些部门组成的呢?高手详细解释给我
  • 奇怪的日期问题,请高手解释
  • 请高手为我解释一下
  • 请高手帮忙解释一下,insmod ./$module.ko || exit 1中的“||”是什么意思啊,多谢!
  • Web服务器/前端 iis7站长之家
  • 请斑竹和高手们帮我解释一下:范式中的*的作用!感激不尽
  • 请教内核高手,抽空解释一下系统中断调用处理流程
  • 关于"symbol lookup error"问题的诡异现象,高手帮忙解释解释
  • 哪位C语言高手帮我解释下下面程序的运行结果 ???????
  • 请那位高手详细解释一下wait函数的用法和意义?
  • 读PCI时有段代码不懂,请高手解释一下
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


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

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

    浙ICP备11055608号-3