Actually that code is run when the class is loaded. Even when there will never be any object created, the code will still run. What you are thinking about are initializer blocks, which are the same but without the static keyword.
Now these static initializers should be used to run code that are required for a class to function properly. That could be any code required.
Rob , you made a correct point. As it's name suggest static initalizer block.So there would be some piece of information which would either initialize in or intialized by this block. if you explore the Java API , you will find in so many API ,which require native code to be loaded first to work class properly,that piece of code can be loaded with the help of static block.Loading of library.