1. static variables initialization
2. static initializer block execution
3. constructor header (super or this)
4. instance variable initialization
5. rest of the code in the constructor
In Code1,
value = 100; is #5 (rest of the code in the constructor), and happens after instance variable initialization (#4).
In Code2,
value = 100; is #2 (static initializer block execution), I guess, and at that time instance variables have not yet been initialized...
But, I just noticed now, at the end of my post

, the initializer has no static modifier... is it a requirement for it to be static to have its execution time at, say, #2?
If it is, so when will the non-static initializer be executed?
Thanx,
Jonathas d-_-b