package test;
public class subClass  {
static int a;
static {
a=11;
}
public subClass() {
a++;
}
public static void main (String[] a){

    subClass sub =new subClass();
    System.out.println(sub.a); //输出的是12
    subClass subb=new subClass13();
    System.out.println(subb.a);//输出的是13}
}我觉得两次都应该是12,怎么第二次是13,不太明白各位给指点指点?

解决方案 »

  1.   

    static {
    }称为静态代码块,静态代码块只会在类加载时执行(初始化)一次。
      

  2.   

    静态变量属于 全局变量,不属于某一个类 值会保存在 内存中 知道 程序结束
    所以 第二次调用a时 之前加了一 所以变成了12
    这道题 已经可以说明static的使用了
      

  3.   

    静态变量属于 全局变量,不属于某一个类 值会保存在 内存中 知道 程序结束
    所以 第二次调用a时 之前加了一 所以变成了12
    这道题 已经可以说明static的使用了