• static作用于成员变量用来表示只保存一份副本
  • final的作用是用来保证变量不可变。下面代码验证一下
public class FinalTest {
    public static void main(String[] args)  {
        AA aa1 = new AA();
        AA aa2 = new AA();
        System.out.println(aa1.i);
        System.out.println(aa1.j);
        System.out.println(aa2.i);
        System.out.println(aa2.j);
    }
}
//j值两个都一样,因为是static修饰的,全局只保留一份
//i值不一样,两个对象可能产生两个不同的值,
class AA {
    public final int i = (int) (Math.random()*100);
    public static int j = (int) (Math.random()*100);
}
//结果是 65、23、67、23