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");
}
}
после запуска:java класс инициализирует заказ, как он работает?
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? Почему i и j изменились на значение по умолчанию, но n все еще не изменилось?
Возможный дубликат [Создание объекта с использованием статического ключевого слова в Java] (http://stackoverflow.com/questions/24927401/creating-object-using-static-keyword-in-java) –