title: When we should use Supplier in Java 8?
body: <p>What difference between this code?</p>
  
  <pre><code>Supplier&lt;LocalDate&gt; s1 = LocalDate::now;
  LocalDate s2 = LocalDate.now();
  
  System.out.println(s1.get()); //2016-10-25
  System.out.println(s2); //2016-10-25
  </code></pre>
  
  <p>I start learning functional interfaces in Java 8 and don't understand the benefit of the Supplier. When and how, exactly, should use them. Does the Supplier improve performance or maybe the benefits on abstraction level?</p>
  
  <p>Thanks for your answers! And it isn't duplicate question because I used search and didn't find what I need.</p>
  
  <p><strong>UPDATE 1:</strong>
  You mean this?</p>
  
  <pre><code>    Supplier&lt;Long&gt; s1 = System::currentTimeMillis;
      Long s2 = System.currentTimeMillis();
  
      System.out.println(s1.get()); //1477411877817
      System.out.println(s2); //1477411877817
      try {
          Thread.sleep(3000l);
      } catch (InterruptedException e) {
          e.printStackTrace();
      }
      System.out.println(s1.get()); //1477411880817 - different
      System.out.println(s2); //1477411877817
  </code></pre>