请问这段Java代码为啥会是这样的结果

System.out.println( new WithFinalFields() );这是第一行,新建了一个WithFinalFields,我们把它简单记为Aclass WithFinalFields { static final SelfCounter staticFinalObject = new SelfCounter(); final SelfCounter finalObject = new SelfCounter();staticFinalObject是静态的,也就是说无论WithFinalFields有多少个实例,WithFinalFields.staticFinalObject只有这一个,所以它一直是0。finalObject是A的一个域,它在staticFinalObject之后执行,所以它是1。System.out.println( new WithFinalFields() );这是第二行,又新建了一个WithFinalFields,我们把它记为BstaticFinalObject就是刚才生成的那个,是0B的finalObject是刚刚生成的,所以是2所以最后的结果是0 10 2只要简单想象static成员是属于类的,而普通成员是属于对象的就可以理解了。


    推荐阅读