(1) Interfaces declared inside a class or other interface are always implicitly static.
So what? This fact is not particularly useful, except that inner classes may not declare static things (static initializers, static fields, static methods, static nested classes, or interfaces).
Inner classes may not declare interfaces. Top-level classes, static member classes and interfaces may declare interfaces.
(2) Interfaces declared in classes can have private, default, protected or public access. Interfaces declared in interfaces are implicitly public.
(3) Static nested types serve as a structuring and scoping mechanism for logically related types.
Sources: JLS 8.1.2, 8.5, 9.5, The
Java Programming Language 5.1, 5.6