博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java类执行顺序
阅读量:4661 次
发布时间:2019-06-09

本文共 538 字,大约阅读时间需要 1 分钟。

  1. 如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块
  2. 如果类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块
  3. 将类的成员赋予初值(原始类型的成员的值为规定值,例如int型为0,float型为0.0f,boolean型为false;对象类型的初始值为null)
  4. 如果构造方法中存在this()调用(可以是其它带参数的this()调用)则执行之,执行完毕后进入第7步继续执行,如果没有this调用则进行下一步。(这个有可能存在递归调用其它的构造方法)
  5. 执行显式的super()调用(可以是其它带参数的super()调用)或者隐式的super()调用(缺省构造方法),此步骤又进入一个父类的构造过程并一直上推至Object对象的构造。
  6. 执行类申明中的成员赋值和初始化块。
  7. 执行构造方法中的其它语句。

 

最终的简化顺序版本是:

 

  1. 父类的静态成员赋值和静态块
  2. 子类的静态成员和静态块
  3. 父类的构造方法
  4. 父类的成员赋值和初始化块
  5. 父类的构造方法中的其它语句
  6. 子类的成员赋值和初始化块
  7. 子类的构造方法中的其它语句

 

转载于:https://www.cnblogs.com/jiuzhongguo/archive/2012/08/13/javacompile.html

你可能感兴趣的文章
jquery-layer
查看>>
JavaScript 基础
查看>>
iOS学习之六种传值方式
查看>>
EF 外键不显示、如何让外键显示!增、删、改 操作时,外键不显示,只显示导航属性!...
查看>>
美文共享
查看>>
Python面试题目之打乱打乱有序列表
查看>>
牛客网——小白鼠排队(桶排序)
查看>>
smtp 发送邮件实例
查看>>
java多线程系列
查看>>
GCD问题 洛谷P1372 又是毕业季I & P1414 又是毕业季II
查看>>
未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序解决办法
查看>>
svn 安装与设置
查看>>
数据结构简单学习
查看>>
Oracle分页抽数存储过程
查看>>
paramiko 模块 ---- python2.7
查看>>
CentOS 安装与优化
查看>>
Quartz定时任务帮助类
查看>>
windows2003 IIS6.0右键属性没有asp.net选项卡的解决办法
查看>>
最短路基础算法
查看>>
php数组操作小结
查看>>