Directly not, Java interfaces are not supposed to contain any code, even if you can now have default method. Following code will not compile:
interface Foo {
    init {
        System.out.println("Loading Foo...");
    }
}
However, interfaces can contain static fields:
interface Foo {
    static class FooLoader {
        private static Object init() {
            System.out.printf("Initializing %s%n", Foo.class);
        }
    }
    Object NULL = FooLoader.init();
}
Again, it may work BUT:
- through Reflection, it's still possible to invoke init()method, so it can be called twice
- code isn't really called at load time but at init time. To understand, what I mean check this simple main: - System.out.println("START");
System.out.println(Foo.class);
System.out.println("END"); 
As long as you don't access static members, Java interfaces are not initialized (See §5.5 of JVM Specification)
So, to truely catch load time, you can use a custom class loader, or instrumentation API.