Thinking in terms of compile time vs runtime, helps in understanding, debugging and solving issues quickly. Here is a quick summary of what happens in compile time vs run time.

 



Syntax error:


Semantics error:


Method Overloading:



Method overriding:


Generics:



Annotation (compile time)

Annotation (run time)


Exception (compile time)


Exception (run time)