First, it is possible, but not necessary, that the static initializer will be called before A is "correctly initialized". A static initializer will execute when B is loaded by the class loader (see # 9: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.4.2 ). We lack information from what you let know when this will happen compared to loadable A (the constructor call in the static initializer B can be loaded the first time it is loaded, or it could happen long before that).
Secondly, it is likely that an instance of initialized A will cause A to initialize in such a way that everything will work on its own. Keep in mind that the constructor will not execute until the class is loaded, which will include the launch of any static initializers for A. Therefore, Iβm not sure what type of initialization you are worried about this may not happen.
Thirdly, the import statement has nothing to do with this. It will behave the same if you fully qualify com.foo.A using the import statement.
Finally, it would probably be helpful if you provided a real-world example. If A is just a logging structure, then this is not something proprietary, and you are likely to get a more useful answer based on what really happens with this particular infrastructure.
Edit: see the link provided in the comment below for a specific example.
source share