如果不实例化一个类,不会去调用它的构造方法,但是放在static块中的语句将会被执行!
[code]package aaaaaTest;
import java.util.HashMap;
import java.util.Map;
public class Test11{
public static final Map map = new HashMap();
static{
// map.put("a", "aaaaaaaaaaaaaaaaa");
// map.put("b", "bbbbbbbbbbbbbbbbbb");
// map.put("c", "ccccccccccc");
// init();
// System.out.println("static 块中的语句 ");
}
public static void init(){
map.put("a", "aaaaaaaaaaaaaaaaa");
map.put("b", "bbbbbbbbbbbbbbbbbb");
map.put("c", "ccccccccccc");
// System.out.println(" static 块 调用 了init方法");
System.out.println("构造方法 块中的语句 调用了init ");
}
public Test11(){
init();
System.out.println("构造方法 块中的语句 ");
}
public static final String AA = "000000000000..........";
}[/code]
[code]
package aaaaaTest;
import java.util.Map;
public class MainTest {
/**
* @param args
*/
public static void main(String[] args) {
String a = Test11.AA;
Map m = Test11.map;
//System.out.println("中华人民共和国。。。。+"+a);
System.out.println("************ "+m.get("a")+"\t"+m.get("b")+"\t"+m.get("c"));
}
}[/code]
[code]package aaaaaTest;
import java.util.HashMap;
import java.util.Map;
public class Test11{
public static final Map map = new HashMap();
static{
// map.put("a", "aaaaaaaaaaaaaaaaa");
// map.put("b", "bbbbbbbbbbbbbbbbbb");
// map.put("c", "ccccccccccc");
// init();
// System.out.println("static 块中的语句 ");
}
public static void init(){
map.put("a", "aaaaaaaaaaaaaaaaa");
map.put("b", "bbbbbbbbbbbbbbbbbb");
map.put("c", "ccccccccccc");
// System.out.println(" static 块 调用 了init方法");
System.out.println("构造方法 块中的语句 调用了init ");
}
public Test11(){
init();
System.out.println("构造方法 块中的语句 ");
}
public static final String AA = "000000000000..........";
}[/code]
[code]
package aaaaaTest;
import java.util.Map;
public class MainTest {
/**
* @param args
*/
public static void main(String[] args) {
String a = Test11.AA;
Map m = Test11.map;
//System.out.println("中华人民共和国。。。。+"+a);
System.out.println("************ "+m.get("a")+"\t"+m.get("b")+"\t"+m.get("c"));
}
}[/code]