最终局部变量(在方法内)的生命周期是否与其他局部变量相同,即,一旦方法调用结束并删除堆栈,它们就会消失吗?
如果是这样,那么我们如何在方法局部类中访问最终局部变量,而其他局部变量却不能?
请澄清我的疑问。
最佳答案
当您创建匿名内部类的实例时,您实际上是在创建一个闭包,这是一种特殊的语言构造,据说可以“封闭”局部变量。幕后发生的事情是最终变量的值被复制到匿名实例的合成实例变量中。像往常一样,堆栈分配的最终变量本身随该方法而消亡。
关于java - 最终局部变量的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522012/