1. u can't use a static var in ur constructor;
2. here k is a "blank final",
java permit u assign a value to it when runtime, once assigned it, can't change in this instance. so every instance can have a final var k, which is not equal. because u can init it at constructor.
3.static vars only one per class ,no matter how many instances were produced.
btw: are u a Chinese? me too
may be we can chat in Chinese.