java - 最终局部变量的生命周期

标签 java inner-classes

最终局部变量(在方法内)的生命周期是否与其他局部变量相同,即,一旦方法调用结束并删除堆栈,它们就会消失吗?
如果是这样,那么我们如何在方法局部类中访问最终局部变量,而其他局部变量却不能?
请澄清我的疑问。

最佳答案

当您创建匿名内部类的实例时,您实际上是在创建一个闭包,这是一种特殊的语言构造,据说可以“封闭”局部变量。幕后发生的事情是最终变量的值被复制到匿名实例的合成实例变量中。像往常一样,堆栈分配的最终变量本身随该方法而消亡。

关于java - 最终局部变量的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522012/

相关文章:

java - JPA树[/Hibernate]

java - 在 AKKA 中,调用 supervisor 的 shutdown 会停止它所监督的所有 actor 吗?

java - 通过递归解决数独

java - 从静态内部类中引用非静态变量

java - 从外部类引用内部类中的方法

java - 在 Scala 中创建具有任意类型和映射的三维数组

java - netty接收事件是并发的吗?下游和上游事件怎么样?

java - 在多线程环境中使用静态内部类有什么陷阱吗?

java - 为什么直接给按钮添加监听器称为内部类呢?

Scala:无法从内部类引用中获取外部类成员