From the Java Language Specifications, 2nd Edition:
9.1.1 Interface Modifiers
An interface declaration may include interface modifiers:
InterfaceModifiers:
InterfaceModifier
InterfaceModifiers InterfaceModifier
InterfaceModifier: one of
public protected private
abstract static strictfp
The access modifier public is discussed in �6.6. Not all modifiers are applicable to all kinds of interface declarations. The access modifiers protected and private pertain only to member interfaces within a directly enclosing class declaration (�8.5) and are discussed in �8.5.1. The access modifier static pertains only to member interfaces (�8.5, �9.5). A compile-time error occurs if the same modifier appears more than once in an interface declaration.
9.1.1.1 abstract Interfaces
Every interface is implicitly abstract. This modifier is obsolete and should not be used in new programs.
9.1.1.2 strictfp Interfaces
The effect of the strictfp modifier is to make all float or double expressions within the interface declaration be explicitly FP-strict (�15.4).
This implies that all nested types declared in the interface are implicitly strictfp.
So top level interfaces can only be declared public, strictfp, and/or (unnecessarily) abstract.
[ January 12, 2005: Message edited by: Mike Gershman ]