class Earth{ static Sky s=new Sky(); Earth(){ System.out.println("earth"); } } class Sky{ Earth e=new Earth(); Sky(){ System.out.println("sky"); } }public class M{ public static void main(String[] args){ new Sky(); } }加载顺序
时间: 2024-03-08 12:45:44 浏览: 45
该程序的输出结果为:
earth
sky
加载顺序为:
1. 程序启动时,JVM加载入口类 M。
2. 执行 main 方法,创建 Sky 对象。
3. 加载 Sky 类,因为 Earth 类是 Sky 类的成员变量,所以先加载 Earth 类。
4. 加载 Earth 类时,发现有一个静态成员变量 Sky s,所以加载 Sky 类。
5. 加载 Sky 类时,发现有一个成员变量 Earth e,所以加载 Earth 类。
6. 加载 Earth 类时,发现有一个静态成员变量 Sky s,但是此时 Sky 类已经加载完成了,所以不需要再次加载。
7. Earth 类加载完成后,创建 Earth 对象,并输出 "earth"。
8. Sky 类加载完成后,创建 Sky 对象,并输出 "sky"。
阅读全文