First, you need to understand the initialization sequence of a Java program
1.static initialization
All static vars and static floating blocks are run first AS IN THE SAME ORDER AS WRITTEN
in the source java program.
2.instance initialization
All instance vars and instance floating blocks are run next AS IN THE SAME ORDER AS
WRITTEN in the source java program.
3.constructor is run
The below example shows all. I am sure it will appear in SCJP:
class Test {
//case 1
final int instFin