Javaがnewの1つのスレッドの時使う変数は必ずfinalで修飾しますか

550 ワード

これはライフサイクルの問題です.例を示します.
public static void main(String args[]){
final MyQueue mq = new MyQueue(5);
Thread t1 = new Thread(new Runnable() {
   @Override
   public void run() {
try {
   Thread.sleep(100);
} catch (InterruptedException e) {
   e.printStackTrace();
}
      mq.put("f");
      mq.put("g");
   }
},"t1");
t1 .start();
}
      final  ,          t1      ,  mq         ,          ,  final  ,       ,new    mq        ;