我有这个代码:

public Thread createThread(){
     final int innerVar = 100;   //this Life cycle ?
     return new Thread(){
          public void run(){
             System.out.println(innerVar);
          }
     };
}


我想知道innerVar的生命周期是什么?

innerVar的局部变量是仍在堆栈中还是在堆中?

最佳答案

innerVar是常量int,因此编译器可以执行常量传播。没有生命周期,因为使用了value而不是变量。

10-08 00:05