title: scheduleAtFixedRate vs scheduleWithFixedDelay
body: <p>What's the main difference between <code>scheduleAtFixedRate</code> and <code>scheduleWithFixedDelay</code> methods of <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html">ScheduledExecutorService</a>?</p>
  
  <pre><code>scheduler.scheduleAtFixedRate(new Runnable() {
      @Override
      public void run() {
          System.out.println("scheduleAtFixedRate:    " + new Date());
      }
  }, 1, 3L , SECONDS);
  
  scheduler.scheduleWithFixedDelay(new Runnable() {
      @Override
      public void run() {
          System.out.println("scheduleWithFixedDelay: " + new Date());
      }
  }, 1, 3L , SECONDS);
  </code></pre>
  
  <p>they print exact the same time, seems they are executed at exact the same interval.</p>