Like static methods, static initializer blocks may only access static data and methods of the class. Yes, static initializer blocks are used to initialize static data that can't be initialized in a single statement.
As for order of execution, I strongly support Hentay's suggestion. Try the experiment and see what you learn. In a case like this, asking us for the answer is like studying a map. Actually discovering the answer is like hiking around in the territory. I wouldn't want to deprive you of a good hike!