weixin_45324217 2021-12-15 20:40 采纳率: 33.3%
浏览 52

java基础,关于回调和对象引用

异步回调中引用外部方法的对象,当外部方法执行完后,方法中的对象会被回收吗?
class A{
fun a(){
    //局部变量b
    val b = B()
    Thread {
        Thread.sleep(100000)
        //2.这时会被回收吗
        b.b()
    }.start()
    b.b()
    //1.a方法执行完毕,这时会被回收吗
}

}

fun main() {
//调用A的a方法
A().a()
}

a什么时候回收,b什么时候回收
  • 写回答

3条回答 默认 最新

  • weixin_45324217 2021-12-15 20:47
    关注

    假设线程无限长,无限调用a方法,如果在1处回收,那么执行到2时b就是报空指针,如果在2处回收,那么b会把内存撑爆,对吗

    评论

报告相同问题?

问题事件

  • 创建了问题 12月15日

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝