iteye_872 2011-08-30 02:43
浏览 294
已采纳

java栈中变量的作用域与内存回收问题上的一点小疑问?

一个类的实例方法
public void test(){

//dosomethings ...


for(int i=0;i<100;i++){
    //dosomethings ...
}


//dosomethings.....

}

这段方法在执行时,变量i的作用域在for循环块中,当出了for循环块以外,变量i失效。但是我想问一下,当出了for循环块以后,变量i的所在内存是否会被回收。也就是说是否在此test方法的栈帧出栈之前被回收?

  • 写回答

4条回答 默认 最新

  • freishlove 2011-08-30 02:55
    关注

    当调用一个java方法时,产生一个帧,帧里面包括操作数栈、局部变量区和帧数据区

    这个局部变量区的大小在编译的时候就已经确定了,在运行时是通过索引来访问的,类似于数组,所以即使出了作用域,这个局部变量区数组还是那么大,不会被compact的,直到方法调用结束将整个帧discard

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
  • ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
  • ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
  • ¥15 一道以太网数据传输题
  • ¥15 python 下载群辉文件
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部