This probably has been blogged more than a few times in the blog sphere, but it doesn't hurt to add another entry about it.

In java 1.6, the specs for @Override annotation was changed to allow @Override annotation on implementation methods that 'override' interface methods. That syntax was not allowed in 1.5.

interface Foo{ void foo(); }
class Bar implements Foo{
@Override //this line is valid in 1.6, but gives compilation error in 1.5
public void foo() {}
}

So, if you are switching back and forth with jdk 1.5 and jdk 1.6 thinking the syntax are compatible, you may run into compilation problems if you have @Override on your implementation class methods. IDEs like Eclipse, trying to be helpful, will automatically add @Override to methods when generating implementation classes, which makes your source codes non-portable to 1.5.

http://blogs.sun.com/ahe/entry/override