1. 初始化块执行的时候,是为field 初始化了,所以它的类型是已知的。
2. 初始化执行的时候和你放的位置有关,你这里的放置就相当于,首先将a初始化为6,然后你本身声明的时候又给了一个显示的初始化值,就又被替换成9了。如果你把初始化块放在声明的后面,就会产生先被初始化为9,后被替换为6.
请参考下面的文章:
http://blog.csdn.net/shiyanming1223/article/details/6888188