compiler — Annotations can be used by the compiler to detect errors or suppress warnings. ▸ Compile-time and deployment-time processing — Software tools can process annotation information to generate code, XML files, and so forth. ▸ Runtime processing — Some annotations are available to be examined at runtime. https://docs.oracle.com/javase/tutorial/java/annotations/