仅为学习记录。直接上例子吧:
public class StaticExample{
static{
System.out.println(1);
}
static {
System.out.println(2);
}
static {
System.out.println(3);
}
public static void main(String args[]){
System.out.println(5);
}
static {
System.out.println(4);
}
}
以上输出结果:
1
2
3
4
5
例子:
class Test {
public static int X = 300;
static {
System.out.println(X);
X = 200;
System.out.println(X);
}
}
public class StaticBlockTest {
public static void main(String args[]) {
System.out.println(Test.X);
}
}
输出:300 200 200 先是static里的两个打印。
分析:先执赋值为300,再进入static分别打印300,200,最后在main函数里打印出来的x的值是200
完。