zoukankan      html  css  js  c++  java
  • java创建对象 的初始化顺序

    java创建对象 的初始化顺序

    1、初始化块

    初始化块通常写在类的构造方法之前,由花括号括起来,通常包含对成员属性进行初始化的语句;

    初始化块分为instance初始化块和static初始化块,初始化块在构造方法执行之前被执行;

    static初始化块不能访问非static成员,也不能调用非static方法,并且只能在类加载时执行一次;

    初始化块通常用于提取多个构造方法中的公共代码。  

    2、初始化块的执行顺序

    (1)、在初次创建一个子类对象时,先加载父类,再加载子类

    (2)、加载父类:

        初始化父类的static属性,赋默认值。

        执行父类的static初始化块

     (3)、加载子类:

          初始化子类的static属性,赋默认值。

          执行子类的static初始化块。

    (4)、创建父类对象:

        初始化父类的非static属性,赋默认值;

        执行父类的instance初始化块;

        执行父类的构造方法;

    (5)、创建子类的对象

        初始化子类的static属性,赋默认值;

        执行子类的instance初始化块;

        执行子类的构造方法;

    后再创建子类对象时,按4,5步骤执行。

      

        

  • 相关阅读:
    C#实现二维码生成与解码
    js中正则表达式使用
    Busybox镜像
    linux删除文件后,空间未释放的一种情况,使用lsof查看
    linux中.nfsxxxx引起的文件无法删除
    linux中的查找命令find,locate,which,whereis
    openj9
    Ali流量控制中间件Sentinel
    LDAP认证模式简介
    nginx支持ipv6
  • 原文地址:https://www.cnblogs.com/UalBlog/p/10542903.html
Copyright © 2011-2022 走看看