Annotation được hiểu là một dạng chú thích hoặc một dạng siêu dữ liệu (metadata) được dùng để mô tả các meta-objects khác. Meta-objects là các classes, fields và methods. Các annotation không có ảnh hưởng trực tiếp đến hoạt động của mã mà chúng chú thích.
Các annotation được sử dụng trong mã nguồn sẽ được biên dịch thành bytecode và sử dụng kỹ thuật phản chiếu (Reflection) để truy vấn thông tin siêu dữ liệu và đưa ra hành động thích hợp.
Tiến trình annotation là một cơ chế rất mạnh mẽ và có thể được sử dụng theo nhiều cách khác nhau: