Inner classes can be static Not by Sun's definition.
Nested classes can be static - but if they're static, they're not considered to be inner classes.
All classes are either top-level, or nested. If they're nested, they are either static member classes, or they're inner classes. Inner classes are either nonstatic member classes, local classes, or anonymous classes.
Older books may use the term "top-level nested class" in place of static member class. This confusing terminology was removed in JLS 2nd edition; it is now best forgotten. Other books may use the term "static inner class". This terminology was
never correct according to the official definitions, though some Sun sources gave contradictory info. But Sun has been fairly clear about this for some time now: inner classes are nested classes that are not static. Period. All dissenters will be shot.