一.通过static修饰的成员变量初始化只会初始化一次 //静态变量初始化只会初始化一次 public class zuishuai { public static void main(String[] args) { // TODO Auto-generated method stub //double[] my = new double[14]; people a = new people(); a.num+=1; System.out.println("现已创建人数:"+a.nu…
当所在的方法的形参需要被内部类里面使用时,该形参必须为final. 为什么必须要为final呢? 首先我们知道在内部类编译成功后,它会产生一个class文件,该class文件与外部类并不是同一class文件,仅仅只保留对外部类的引用.当外部类传入的参数需要被内部类调用时,从java程序的角度来看是直接被调用: public class OuterClass { public void display(final String name,String age){ class InnerClass{…
被匿名内部类引用的变量会被拷贝一份到内部类的环境中 但其后,在外部,该变量如果被修改,则内部外部不一致 Java为了避免数据不同步的问题,做出了匿名内部类只可以访问final的局部变量的限制. 究其原因,在于 区域变量 x 并不是真正被拿来于内部匿名类别中使用,而是在内部匿名类别中复制一份,作为field成员来使用,由于是复本,即便您在内部匿名类别中对 x 作了修改,会不会影响真正的区域变量 x,事实上您也通不过编译器的检查,因为编译器要求您加上"final"关键词,这样您就知道您不能…