Java多线程对每个线程都有自己的栈。因此对于在线程控制流中的调用函数,它的内部变量不会相互影响。但是,对于多个线程可以同时访问到的对象,Java为了安全,必须强制程序员将其声明为final,以避免可能出现的竞争问题。
  例子如下: public class Test {     public Test() {         final int i = 1;  //如果不声明成final,则无法编译                  Runnable thread = new Runnable() { 
            public void run() {                 System.out.println(i);                              }                      };              }          public static void main(String[] args) {         Test test = new Test();     } }  
 
  |