public class Test {
Person person = new Person("Test");
static{
System.out.println("test static");
}
public Test() {
System.out.println("test constructor");
}
public static void main(String[] args) {
new MyClass();
}
}
class Person{
static{
System.out.println("person static");
}
public Person(String str) {
System.out.println("person "+str);
}
}
class MyClass extends Test {
Person person = new Person("MyClass");
static{
System.out.println("myclass static");
}
public MyClass() {
System.out.println("myclass constructor");
}
}
输出结果是:
test static
myclass static
person static
person Test
test constructor
person MyClass
myclass constructor
加载Test类
执行Test.main
加载MyClass类
加载Test类(已加载)
构造Test
加载person类
Test 的person成员变量
test构造器
加载person类(已加载)
MyClass的person成员变量
MyClass构造器
博客记录了Java程序运行时类加载和构造过程的输出结果,包括类的静态内容、构造器执行情况,以及不同类的加载顺序,如Test类、MyClass类和person类等。


被折叠的 条评论
为什么被折叠?



