class Test{
static int n=20;
final int nn;
final int k=40;
ca(){
  nn=++n;
}
}
public class FinalDemo1{
public static void main(String args[]){
ca m1=new Test();
ca m2=new Test();
System.out.println("m2.nn="+m2.nn);
System.out.println("m2.k="+m2.k);
System.out.println("m1.nn="+m1.nn);
System.out.println("m1.k="+m1.k);
}
}
运行结果
m2.nn=22
m2.k=40
m1.nn=21
mi.k=40这是书本的例题 书本说final修饰的最终数据成员的值在执行过程中是不能改变的  那为什么nn会变呢?
就算nn会变  为什么m2.nn的值会22呢? 不是应该m1.nn=22 m2.nn=21吗?
到底这个程序的运行顺序是先m2还是先m1??