package ali;
public class test {
public static int n = 99;
public static test t1 = new test("t1");
public static test t2 = new test("t2");
public static int i = 0;
public static int j = i;
{
System.out.println("construct block");
}
static {
System.out.println("static construct block");
}
public test(String str){
System.out.println((++j) + ":" + " i="+ i + " n="+n+str);
n++;i++;
}
public static void main(String [] args){
test test1 = new test("initl");
}
}
construct block
1: i=0 n=99t1
construct block
2: i=1 n=100t2
static construct block
construct block
1: i=0 n=101initl
谁能告诉我它是如何工作的? 为什么t1和t2 ware创建时没有“静态构造块”? 为什么我和j更改为默认值,但n仍然保持不变?
[在Java中使用静态关键字创建对象]可能的重复(http://stackoverflow.com/questions/24927401/creating-object-using-static-keyword-in-java) – 2014-08-29 06:07:26