java类执行顺序
来源:互联网 发布:线切割控制器手动编程 编辑:程序博客网 时间:2024/05/20 01:45
java类执行顺序
- 如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块
- 如果类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块
- 将类的成员赋予初值(原始类型的成员的值为规定值,例如int型为0,float型为0.0f,boolean型为false;对象类型的初始值为null)
- 如果构造方法中存在this()调用(可以是其它带参数的this()调用)则执行之,执行完毕后进入第7步继续执行,如果没有this调用则进行下一步。(这个有可能存在递归调用其它的构造方法)
- 执行显式的super()调用(可以是其它带参数的super()调用)或者隐式的super()调用(缺省构造方法),此步骤又进入一个父类的构造过程并一直上推至Object对象的构造。
- 执行类申明中的成员赋值和初始化块。
- 执行构造方法中的其它语句。
最终的简化顺序版本是:
- 父类的静态成员赋值和静态块
- 子类的静态成员和静态块
- 父类的构造方法
- 父类的成员赋值和初始化块
- 父类的构造方法中的其它语句
- 子类的成员赋值和初始化块
- 子类的构造方法中的其它语句
运行结果:
总结:程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
0 0
- java类执行顺序
- java类执行顺序
- java类执行顺序
- java类执行顺序
- Java类执行顺序
- java 类执行顺序 +变量赋值顺序
- java类的执行顺序
- java类的执行顺序
- Java类的执行顺序
- Java类代码执行顺序
- Java类中的执行顺序
- java类中的执行顺序
- java类方法执行顺序
- java类代码执行顺序
- java, c#类执行顺序
- java类执行的顺序
- Java 类加载执行顺序
- java类的执行顺序、语句执行顺序详解
- block,inline和inline-block概念和区别
- 使用Picasso加载图片的内存优化实践
- 我的第一篇博客
- Spring Boot应用中Messages资源信息在Thymeleaf中的显示错误问题
- sprintf、strcpy和memcpy的区别
- java类执行顺序
- 查看MYSQL版本的几种方法
- 二两橙子的前端之路--简单算法的实现
- Java并发编程之volatile关键字的理解
- 查看MYSQL版本的几种方法
- Opencv图像识别从零到精通(36)----DFT离散傅里叶变换
- Java 程序员必须收藏的资源大全
- 电脑开机卡在欢迎界面进不去?解决办法。
- ZooKeeper 实现分布式队列