public class Test {
static class A {
public A() {
System.out.println("A constructor");
}
static {
System.out.println("A static {}");
}
{
System.out.println("Common");
System.out.println("A {}");
}
}
static class B extends A {
public B() {
System.out.println("B constructor");
}
{
System.out.println("B {}");
System.out.println("Common");
}
static {
System.out.println("B static {}");
}
}
public static void main(String[] args) {
A t = new B();
while (true) {// 程序停住,然後去看堆棧信息
}
}
}
問題1,程序輸出?
answer1:
"C:\Program Files\Java\jdk-11.0.7\bin\java.exe" "-javaagent:operator.Test
A static {}
B static {}
A {}
Common
A constructor
B {}
Common
B constructor
結論:父static > 子static > 父{} > 子{} > 父constructor > 子 constructor
問題2:堆棧中信息?
answer2:
棧中: