(1) 모양: @ ex) @Override (2) 기능 1) 클래스나 생성자, 메소드, 필드에 붙어서 '정체성'을 부여한다. 2) 기능을 확장하는 '표식' 이다. 3) xml을 대신해서 '설명'하는 역할이다. 4) 실행시( 런타임 ) 특정 기능을 실행하도록 정보를 제공한다. 5) 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 6) 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다. 7) 에노테이션을 직접 만드는 것도 가능하다. (3) JDK6 이상에서 지원