title: What is the difference between Binding and Dispatching in Java?
body: <p>There are too many associated names: Early and Late Binding, Static and Dynamic Dispatch, Runtime vs. Compile-time Polymorphism, etc. that I don't understand the difference. </p>
  
  <p>I found a clear <a href="https://softwareengineering.stackexchange.com/questions/200115/what-is-early-and-late-binding/200123#200123">explanation</a>, but is it correct? I'll paraphrase <em>JustinC</em>:</p>
  
  <p><strong>Binding:</strong> is determining the type of a variable (object?). If it's done at compile time, its early binding. If it's done at run time, it's late binding.</p>
  
  <p><strong>Dispatch:</strong> is determining which method matches the method call. Static Dispatch is computing methods at compile time, whereas dynamic dispatch is doing it at run time.</p>
  
  <p>Is Binding matching up primitive and reference variables with primitive values and objects respectively? </p>
  
  <p>Edit: Please give me some clear reference material so I can read more about this.</p>