再观摩代码的时候发现:
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]