Will a timer keep running indefinetly until its .cancel method has been invoked
<p>Below code starts and runs two timers in order, I would have thought that the first timer would stop running once the second timer is initialised. It seems that when a Timer is given a new reference its previous reference just keeps executing the given task ?</p>

<pre><code>public class TimerTest {

    private TimerTask timerTask;
    private Timer timer;
    private int counter = 0;
    private final int delay = 1000;

    public static void main(String[] args){
        new TimerTest().runTimer();
        new TimerTest().runTimer();
    }

    private void runTimer(){
        timer = new Timer();
        timerTask = new TimerTask() {
            public void run() {          
                ++counter;
                System.out.println("output - "+counter);
            }
        };
        timer.scheduleAtFixedRate(timerTask, delay, delay);
    }

}
</code></pre>
