Here r some points i'd noted:
1.Abstract cannot be combined with private, static,synchronized,
final or native.
2.Methods can have more than one modifier but not access modifiers(such as public, private etc.) .
same modifier cannot appear twice.
3.Keywords 'super' and 'this' should'nt appear in a static initializer.
4.A constant(final) member must'nt be synchronized ,transient or volatile.
5.Constructors cannot be abstract.
6.Local variables cannot be declared as static.
7.Inner classes can be public, private, protected or default access and can also be marked static.
8.Static variable inside an inner class should be final.
9. Classes defined inside a method cannot have any modifier and
neither that method nor that class can be marked as static.
going thru the rules round up game in the JavaRanch and JLS gets u many.
Hope this helps.