一个static的新手问题

再观摩代码的时候发现:

static{
//code
}

请问这是一个方法么,用法以及用途分别是什么?

static中的语句,在该类被加载到JVM时,只调用1次。无论该类被实例化多少次,static语句块中的语句都不会被再次调用!
[code="java"]
import java.util.Date;

public class Hello {

private static Date date;

static {
    System.out.println("被加载到JVM中");
    date = new Date();
}

public Hello(){
    System.out.println("调用了构造函数");
}

public void doSomething() {
    System.out.println("系统启动的时间: " + date);
    System.out.println("做其他操作");
    System.out.println("-----------------------");
}

public static void main(String[] args) throws InterruptedException {

    new Hello().doSomething();
    Thread.sleep(2000);
    new Hello().doSomething();
}

}
[/code]

输出:
[quote]
被加载到JVM中
调用了构造函数
系统启动的时间: Fri Apr 16 14:15:20 CST 2010

做其他操作

调用了构造函数
系统启动的时间: Fri Apr 16 14:15:20 CST 2010

做其他操作

[/quote]
[color=blue][b]
注意:构造函数被调用了多次,而static语句块只调用了1次,并且Date没有改变。

所以static一般用来初始化配置信息等。[/b][/color]

静态方法块,执行的优先级高于其它方法。你可以搜索static代码块获得更多东西