java.util.Timer定時器,實際上是個線程,定時調度所擁有的TimerTasks。  
  一個TimerTask實際上就是一個擁有run方法的類,需要定時執行的代碼放到run方法體內,TimerTask一般是以匿名類的方式創建。  
   
  一個完整的Timer:  
   
  java.util.Timer   timer   =   new   java.util.Timer(true);  
      //   true   說明這個timer以daemon方式運行(優先級低,  
      //       程序結束timer也自動結束),注意,javax.swing  
      //   包中也有一個Timer類,如果import中用到swing包,  
      //   要注意名字的沖突。  
   
  TimerTask   task   =   new   TimerTask()   {  
      public   void   run()   {  
            ...   //每次需要執行的代碼放到這里面。  
      }  
  };  
   
  //以下是幾種調度task的方法:  
   
  timer.schedule(task,   time);    
  //   time為Date類型:在指定時間執行一次。  
   
  timer.schedule(task,   firstTime,   period);  
  //   firstTime為Date類型,period為long  
  //   從firstTime時刻開始,每隔period毫秒執行一次。  
   
  timer.schedule(task,   delay)  
  //   delay   為long類型:從現在起過delay毫秒執行一次  
   
  timer.schedule(task,   delay,   period)  
  //   delay為long,period為long:從現在起過delay毫秒以后,每隔period  
  //     毫秒執行一次。   
   

下面是一個完整的例子,由兩個類組成,一個定制任務,一個調用java.util.Timer

定制任務:
import java.util.Timer;

public class TimerTaskTest extends java.util.TimerTask{

 @Override
 public void run() {
  // TODO Auto-generated method stub
  System.out.println("start");
 }
}
2.調用java.util.Timer
import java.util.Timer;

public class Test {
 public static void main(String[] args){
  Timer timer = new Timer();
  timer.schedule(new TimerTaskTest(), 1000, 2000);
  try{
   Thread.sleep(1000);
  }catch(Exception ex){
   timer.cancel();
  }
 }
}
根據上面的介紹,便可以在1秒后,每隔2秒執行一次程序
建議:在使用Timer timer = new Timer()時,不要用Timer timer = new Timer(true).因為這樣,在程序結束后,timer也自動結束了,不利于使用