zoukankan      html  css  js  c++  java
  • java程序初始化顺序

     使用场景:  在java程序中,当实例化对象时,对象的所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,

    才会调用对象所在类的构造函数创建对象

         初始化的原则

       (1)静态对象优先于非静态对象初始化,静态对象只能初始化一次,但非静态对象可以初始化多次。

       (2)超类优先于派生类初始化。

      (3)按照成员变量定义的顺序来进行初始化,即使变量定义散布于方法定义之中,它们仍然在任何方法(包括构造器)被调用前初始化。

    package test;
    /*java程序初始化的顺序:超类静态变量 超类静态代码块 子类静态变量 子类静态代码块 
     *  超类非静态变量 超类非静态代码块 超类构造函数  子类非静态代码块  子类非静态代码块
     *  子类构造函数*/
    
    class Base {    
        static {
            System.out.println("父类静态块");//(1)
        }
        {
            System.out.println("父类块");//(3)
        }
    
        public Base() {
            System.out.println("父类构造方法");//(4)
        }
        
        public static void A() {
            int a;//静态方法中不能有静态常量,因为static方法共享一块内存区域,主要用于累加,如果静态常量的话就不能累加了,就冲突了
            System.out.println("父类普通静态方法");
        }
        
    }
    
    public class Derived extends Base {
        static int a=1;    
        static int b=2;
        static {
            System.out.println("子类静态块");//(2)
        }
        {
            System.out.println("子类块");//(5)
        }
    
        public Derived() {
            System.out.println("子类构造器");//(6)
        }
    
        public static void main(String[] args) {    
            Base.A();        
            new Derived();
            
        }
    }
    /*
     *public static void main(String[] args) {        
            new Derived();
            Base.A();        
        }
    父类静态块
    子类静态块
    父类块
    父类构造方法
    子类块
    子类构造器
    父类普通静态方法
    */
    
    /*
     *public static void main(String[] args) {    
            Base.A();        
            new Derived();
            
        }
     父类静态块
    子类静态块
    父类普通静态方法
    父类块
    父类构造方法
    子类块
    子类构造器
     * */

          

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    js--未来元素
    Nginx 浏览器打开是下载状态
    JS对象的深拷贝
    微信小程序--扫描二维码
    js--call( )/apply()/bind()--应用
    数学书籍
    【活动】你有创意我有奖!摹客X飞书2020产品设计大赛邀你来战
    APP设计实例解析,深色模式为什么突然就火了?
    焦虑求职季又至:2020UI设计师作品集如何准备?
    QQ音乐 vs 网易云音乐,用户体验哪家强?
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/9320772.html
Copyright © 2011-2022 走看看