Mike Simmons wrote:
it should say:
2. Process all static variable declarations and static initializers in the order they appear
Your code demonstrates this. Also, the Java Language Specification backs us up:
JLS 16 12.4.2 wrote:9. Next, execute either the class variable initializers and static initializers of the class, or the field initializers of the interface, in textual order, as though they were a single block.