在《Thinking in Pattern》中讲object pool时有一段代码,不懂,请解释一下:public class ConnectionPoolDemo extends TestCase  {  static {    ConnectionPool.addConnections(5);  }
//此处的static是什么,它是一个什么样的method吗?
 .......
  public static void main(String args[]) {    junit.textui.TestRunner.run(ConnectionPoolDemo.class);  }}
// junit.textui.TestRunner.run(ConnectionPoolDemo.class);
语句是什么意思?

解决方案 »

  1.   

    static {    ConnectionPool.addConnections(5);  }
    这个static没什么特别的就是大括号内的所有方法都是静态的也就是类方法
    junit.textui.TestRunner.run(ConnectionPoolDemo.class);是一个进行单元测试的方法具体实现要看源代码.
      

  2.   

    static大括号中的是方法的内容,那么该方法的名称是什么
    junit.textui.TestRunner.run(ConnectionPoolDemo.class);
    的参数是什么类型,它传递这个参数有什么意义
      

  3.   

    这里的 static {...} 应该是表示说,大括号中的一整段代码都是静态的
    在第一次创建 ConnectionPoolDemo 类的实例之前
               (或许,第一次调用 ConnectionPoolDemo 类的方法,通常是静态方法,之前),
    虚拟机都会运行这一段代码,
               (我理解上是,这不但是在第一次创建运行,而且在整个程序的运行过程中,只  会自动的调用一次)
      

  4.   

    static大括号中的内容在生成这个类的对象的时候,会首先被执行,然后再调用这个类的构造方法,我记得好象是这样的.
      

  5.   

    static{}是进入class constructor
      

  6.   

    谁说的static{}是构造器,首先{}是块,大家都应该知道在类里面是不允许有赋值语句和输出语句的,就像a=1;(不是int a=1;这样的声明并赋初值的语句)和System.out.println("");  这样的语句只能放在方法或者是块里,放在块里的就和类的属性是一样的,声明了该类的对象就执行了块中的语句,不用在调用方法,而加上static的块通常用于初始化静态变量
      

  7.   

    static{}叫做静态初始化块,它在每次生成新的对象时都会执行,主要用于解决静态字段需要复杂的初始化代码的问题
      

  8.   

    static {}
    static 明确初始化的意思
    you can :interface A//interface is static and final ,can't method ,but you can do in static{}
    {
    static
    {
    public void m()
    {
    Tools.print("A");
    }
    }
      

  9.   

    racewind() 将的不对吧,我试了不对
    -----------------
    可是和构造方法有什么区别?
      

  10.   

    static {...}是类构造器class constructor,当这个类被加载时执行