java 以外の言語でみると、C# とかの属性が java の注釈と似たような機能なんだけど、
たとえば java.io.Serializable とかの実行に直接的な影響の無いマーカーインターフェイスが、
C# では属性として定義され、使われてます。

けど、ぶっちゃけ自前で実装することは殆ど無い。
大抵 API からの要請でつけるくらいで。