Consider the following Java class declaration:
public class Test { private final int defaultValue = 10; private int var; public Test() {
It is because the defaultValue is an member of Test 's instance which is under construction (not yet created)
defaultValue
Test
If you had it static it were loaded when your class loads by classloaders
static