美文网首页
Java-加载顺序(1)

Java-加载顺序(1)

作者: 仆歌 | 来源:发表于2016-07-17 23:00 被阅读0次

    ++2016.7.17
    ++by side @Java-加载顺序(1)

    ==================================
    关于Java-加载顺序

    下面是一个面试题
    /* 输出打印
    */
    
    public class Z extends X {
    
    Y y=new Y();
    
    Z(){
    
        System.out.println("Z的构造方法");  
    }
    public static void main(String[] args) {
        
        new Z();
        
    }
    
    }
    class X{
    Y b=new Y();  
    X(){
        System.out.println("X的构造方法"); 
    }
    }
    class Y{
    Y(){
        System.out.println("Y的构造方法");  
    }
    
    }
    
    首先简单理解JVM加载的简单过程以本题为例
    本题 加载过程
    简单描述一下:

    步骤:

    • 1.找到main()方法
    • 2.加载Z的父类X到内存X.class,然后加载PrintDemo到内存Z.class
    • 3.加载main()方法到栈
    • 4.执行main()方法里的new Z();
    • 5.执行Z父类X的构造方法,在此之前先加载X的成员Y b=new Y();
    • 6.加载Y到内存Y.class执行Y的构造方法 //打印 Y的构造方法
    • 7.再执行X的构造方法 //打印 X的构造方法
    • 8.再执行Z的构造方法,在此之前先加载Z的成员Y y=new Y(); 执行Y的构造方法 //打印 Y的构造方法
    • 9.打印 Z的构造方法
    • 10.结束
    显示结果:
    显示结果

    ==================================
    @小怪兽

    ps:因作者能力有限,有错误的地方请见谅

    相关文章

      网友评论

          本文标题:Java-加载顺序(1)

          本文链接:https://www.haomeiwen.com/subject/epvjjttx.html