Binding implies the attachment of a procedural call from the code that is supposed to be executed when the call is made. Dynamic Binding has another term which is called, 'Late Binding' and this means that the code which is linked to the call is not known until the moment that the call is made i.e. upon runtime. This enhances the properties of JAVA such as inheritance and polymorphism.
If you want to understand the difference and real hands-on to understand when it's imperative to use static and when there's a need for dynamic binding, you should learn java from the ground up implementing these concepts in very basic problem statements.