在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);
}
}
所有靜態初始化塊都是按照在類中的順序來初始化的。
靜態初始化塊是在類加載時候運行的,當實例化一個對象時,調用初始化快,就像調用一個構造函數。