静态代码块、非静态代码块、构造函数三者执行顺序
来源:互联网 发布:小米抢购软件有用吗 编辑:程序博客网 时间:2024/05/22 17:15
主要探讨一下关于静态代码块,非静态代码块,构造函数的执行顺序。
如有错误,欢迎指出。
首先:
静态成员变量和静态代码块的优先级是一样的,先定义的先执行。
在创建一个对象的时候会执行非静态代码块和构造函数
再者是执行顺序:
/*
*
*(1)父类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
*
*(2)子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
*
*(3)父类实例成员和实例初始化块,按在代码中出现的顺序依次执行。
*
*(4)执行父类构造方法。
*
*(5)子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。
*
*(6)执行子类构造方法。
*
*/
public class StaticTest { public static StaticTest t1=new StaticTest(); //静态成员变量,第一步执行 public static void main(String args[]) { StaticTest t2=new StaticTest(); //第三步执行 } //静态代码块 static{ System.out.println("B");//第二步执行 } //非静态代码块 { System.out.println("A"); }}
输出:
A
B
A
再来看看这个代码,代码位置调换一下顺序
public class StaticTest { public static void main(String args[]) { StaticTest t2=new StaticTest(); //第三步执行 } //静态代码块 static{ System.out.println("B");//变成第一步执行 } public static StaticTest t1=new StaticTest(); //静态成员变量,变成第二步执行 //非静态代码块 { System.out.println("A"); }}
输出:
B
A
A
所以验证:
1.静态成员变量和静态代码块的优先级是一样的,先定义的先执行。
2.在创建一个对象的时候会执行非静态代码块和构造函数。
阅读全文
0 0
- 静态代码块、非静态代码块、构造函数三者执行顺序
- Java中静态代码块、非静态代码块、构造方法三者的执行顺序
- 静态代码块、非静态代码块、构造函数的执行顺序
- 静态代码块&非静态代码块&构造函数的执行顺序
- 举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
- Java中静态代码块、非静态代码块和构造函数的执行顺序
- Java中静态代码块、非静态代码块、构造函数的执行顺序与作用
- java中静态代码块,非静态代码块,构造函数之间的执行顺序
- static静态代码块与非静态代码块与构造函数执行顺序
- JAVA继承关系中静态代码块、非静态代码块,构造函数的执行顺序
- 静态代码块,非静态代码块,构造函数,普通方法执行顺序
- JAVA静态代码块、非静态代码块、构造函数的执行顺序
- java 静态代码块 代码块 构造函数执行顺序
- 静态代码块,代码块,构造函数的执行顺序
- 静态代码块、代码块、构造函数执行顺序
- 静态代码块,构造代码块,普通代码块-三者的执行顺序及区别
- 静态代码块 构造函数 静态代码块块执行顺序
- 静态代码块,非静态代码库,构造函数,子父继承代码执行顺序
- 北京买车武汉上牌超详细全细节攻略(北京买车必看)
- web.xmlwen头部引用报错
- jquery常用代码段
- Python工具包以及资源包
- 视觉编程
- 静态代码块、非静态代码块、构造函数三者执行顺序
- springboot+thymeleaf 实现thymeleaf自定义方言系统 自定义标签, cms系统搭建(一)
- 关机程序(整人)
- 自定义Tablayout下线的宽度
- 笔记·Spring框架第三天
- Quartz(三)整合spring
- Spring事务管理,"'程序报错'但'事务不回滚'?"问题分析(SSM实例)
- mysql中Timestamp,time,datetime 区别
- 安卓JNI错误调试汇总