有一段程序:public class Bme extends Bime {
......
   }                                          static {
      chr = 32;
      Gls.st.println("BitCou is " + chromosomeLength);
      knss = true;
      sos = ch;
   }   private int bnt() {......   }其中怎么会有 static {  } 这种结构??这表示什么意思呢??

解决方案 »

  1.   

    表示static块,就是在这一个范围内的所有东西都是static的,在被实例化时最先第一个初始化
      

  2.   

    写法上的方便,简写。不然每个成员前面要加下static的,
      

  3.   

    原来如此:) 不过还是不太明白。在这里用static有什么实际意义吗?
    “在被实例化时最先第一个初始化”这句能解释一下吗?而且也没有见过
    static chr=32;这种用法阿。。最好能举例说明一下:)搂主借贵宝地学习一下啦:)
      

  4.   

    static块中可以运行一些语句,这和static属性的初始化是不同的.
    static的东西都会在类被加载的时候执行.先于类的构造函数执行.
      

  5.   

    谢谢解答。。那里边的      
          chr = 32;
          knss = true;
          sos = chr;等等不用指定数据类型的吗??
      

  6.   

    我找到了,,在另一个类里边,,不过已经指定为static的了:   protected static int     chromosomeLength = -1;        
       protected static boolean knownSolutionFitness = false; 
       protected static double  solutionFitness  = -1;       难道还需要像顶楼那样再指定一遍吗??
      

  7.   

    shenpipi(皮皮)正解。
    这段语句块只在类装载的时候执行一次,而且最先执行。