zoukankan      html  css  js  c++  java
  • java-类生命周期(二)

    上文介绍了java-类生命周期(一),理论性比較强。认为太复杂的同学,瞟一下本文的样例加深理解。

    先给道题目,看看答对没。


    /**
     * 类载入试验基类
     * 
     * @author peter_wang
     * @create-time 2014-5-14 上午8:41:23
     */
    public class SuperClass {
        static {
            System.out.println("call super static method!");
        }
    
        private SuperHelpClass mSuperSuperClass = new SuperHelpClass();
    
        public SuperClass() {
            System.out.println("call super constructor");
        }
    
        public SuperClass(int flag) {
            System.out.println("call super constructor " + flag);
        }
    
    }

    /**
     * 类载入试验子类
     * 
     * @author peter_wang
     * @create-time 2014-5-14 上午8:43:07
     */
    public class SubClass
        extends SuperClass {
        private SuperClass mSuperClassFirst = new SuperClass(1);
    
        public SubClass() {
            System.out.println("call sub constructor");
        }
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            SubClass subClass = new SubClass();
        }
    
        static {
            System.out.println("call sub static method!");
        }
        private static SuperClass mSuperClassSecond = new SuperClass(2);
    
    }

    求运行结果。


    原理剖析:

    1.启动JVM,运行SubClass的入口main方法。意外发现类没载入,遂用ClassLoader载入.class文件

    2.载入完SubClass,运行main之前须要先运行静态块,再运行静态域

    3.父类优先于子类运行

    4.运行main方法中的new SubClass(),运行父类全部变量初始化,再运行父类构造器

    5.运行子类全部变量初始化,最后运行子类构造器


    运行结果:

    call super static method!
    call sub static method!
    call super constructor 2
    call super constructor
    call super constructor 1
    call sub constructor


  • 相关阅读:
    selenium+python(模块化驱动测试)
    selenium+Python(处理html5的视频播放)
    selenium+Python(文件下载)
    selenium+Python(文件上传)
    selenium+Python(alert 、confirm 、prompt 的处理)
    selenium+Python(表单、多窗口切换)
    Cookie跳转登录验证码
    几种典型的软件自动化测试框架
    Python开发利器之UliPad
    selenium+python(数据驱动测试)
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7084366.html
Copyright © 2011-2022 走看看