Головним завданням анотацій є статичне розширення класів (саме класів, а не об'єктів), шляхом додавання метаданих в клас, без зміни його методів і властивостей. Як правило, анотації є природним способом взаємодії з деякими з бібліотек або фреймворків (наприклад, Hibernate або Spring). Тобто, додаючи в свої класи анотації, які визначені в подібних бібліотеках, Ви, тим самим, вказуєте бібліотеці використовувати саме ті класи, методи або властивості, до яких додано анотації. При цьому, Ваш код не піддається ніяким змінам.