小编Pro*_*tas的帖子

Java中捕获的变量存储在哪里?

我试图理解 Java 中捕获变量的概念。

我找到了关于它的非常详细的文章:http : //www.devcodenote.com/2015/04/variable-capture-in-java.html

我不确定字节码部分:

类似地,为了访问封闭方法的局部变量,会制作变量的隐藏副本并将其保存在内部类文件中,从那里访问变量。

在编译时可能不知道最终原始值时,如何将其保存到类文件中(在编译期间)?

例如:

void foo(int x){
    final int y = 10 + x;

    class LocalClass(){
        LocalClass(){
            System.out.println(y);  // works fine
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果作者错了,运行时是否将局部变量复制到方法区的LocalClass空间中?

java captured-variable

2
推荐指数
1
解决办法
226
查看次数

标签 统计

captured-variable ×1

java ×1