title: Why was the double colon operator chosen for Java 8?
body: <p>Prior to Java 8, my observation was that the de facto standard for referring to member methods was by using the <code>#</code> symbol (such as <code>Object#toString()</code>). Then along came Java 8 which instead chose the <code>::</code> operator for method references for seemingly no reason.</p>
  
  <p>Has there been an official explanation or justification for why <code>::</code> in particular was chosen?</p>