What are tagging interfaces and what are they used for?
The question of marker interfaces vs annotations is discussed in Bloch's "Effective Java", and part of that section is available on google books here