Your definitions apparently come from the world of compilers with native code (C, C ++, Pascal, etc.). In Java, compilation is just the process of turning Java code (text) into Java bytecode, which is also high-level code, not an object (machine) code.
Binding in Java occurs every time an application runs inside a virtual machine, where characters in a byte encoder are allowed to reference another loaded byte code. So, the sequence in java is actually: Compile -> Deploy -> Link -> Run.
Once launched, the JVM may choose to turn Java bytecode into machine code for direct execution, but it can also simply interpret the bytecode.
In this case, deployment simply means telling the application server where the code and the launch code are located, as defined in the application descriptor (for example, the servlet and filter initialization defined in web.xml for webapps).
source share