在Hadoop-0.1.0的org.apache.hadoop.util.Daemon.java中
public class Daemon extends Thread {
{
setDaemon(true); // always a daemon
}
setDaemon(true); // always a daemon
}
。。。
}
上述的就是传说中的对象的初始化块。
通常,直接将初始化代码放置在一个构造器的内部。
还有一种就是静态初始化块。
package hehe;
public class AntRunClass {
private String string;
private static String staticString;
static {
staticString="HH";
}
{
string="";
staticString="lala";
}
private static String staticString;
static {
staticString="HH";
}
{
string="";
staticString="lala";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
AntRunClass a;// =new AntRunClass();
System.out.println(AntRunClass.staticString);
a =new AntRunClass();
System.out.println(a.staticString);
}
}
// TODO Auto-generated method stub
AntRunClass a;// =new AntRunClass();
System.out.println(AntRunClass.staticString);
a =new AntRunClass();
System.out.println(a.staticString);
}
}
所有静态初始化块都是按照在类中的顺序来初始化的。
静态初始化块是在类加载时候运行的,当实例化一个对象时,调用初始化快,就像调用一个构造函数。