静态代码块并不是优先执行,急!!!!
刚学java不久,这段代码想了半天都没明白,求大神解答,谢谢!
package tes;
public class Otyd {
private static int k=0;
private static Otyd t3;
private static Otyd t1 = new Otyd("t1");
private static Otyd t2 = new Otyd("t2");
private static int n = 99;
private static int i = print("i");
{
print("构造块");
}
static{
print("静态块");
}
public Otyd(String s){
System.out.println(++k+":"+s+" i:"+i+" n:"+n);
}
private static int print(String s){
System.out.println(++k+":"+s+" i:"+i+" n:"+n);
n++;
return i;
}
public static void main(String[] args) {
Otyd n = new Otyd("init");
}
}
运行结果:
1:构造块 i:0 n:0
2:t1 i:0 n:1
3:构造块 i:0 n:1
4:t2 i:0 n:2
5:i i:0 n:99
6:静态块 i:0 n:100
7:构造块 i:0 n:101
8:init i:0 n:102