zoukankan      html  css  js  c++  java
  • 八.Java中的初始化顺序

    1.//!!!在加载类的过程中为静态变量分配内存,实例变量在创建对象时分配内存!!!//

    2.初始化顺序

      1.父类优于子类

      2.创建对象前:static{}/static/static修饰的方法,变量随类加载
         |
      3.创建对象时:代码块/实例化属性->构造器

      4.同样的情况下:同时代码块或同是静态修饰时,是要看它们的语句顺序了

    class a{
        static{
            System.out.println("a static");
        }
        {
            System.out.println("a loading");
        }
        a(){
            System.out.println("a create");
        }
    }
    class b extends a{
        static{
            System.out.println("b static");
        }
        {
            System.out.println("b loding");
        }
        b(){
            System.out.println("b create");
        }
    }
    public class Test3{
        public static void main(String[] args) {
            new b();
        }
    }

    3.一个考虑:创建对象时先有对象还是先创建内存

    4.隐式赋值在new的时候

    5.显式赋值在super之后

    6.子类中非静态属性的显示赋值是在父类构造器执行完之后和子类中的匿名代码块执行之前的时候

     

  • 相关阅读:
    Samba网络配置
    嵌入式汇编程序
    GDB常用命令
    Everything搜索结果显示0 Object
    关于值类型和引用类型
    Main()

    利用python脚本自动下载ICML会议接受的文章
    如何从mac下的photos导出照片
    Erlang语言研究综述
  • 原文地址:https://www.cnblogs.com/Magic-Li/p/12799393.html
Copyright © 2011-2022 走看看