静态代码块,构造代码块,构造函数的执行顺序
来源:互联网 发布:mac文稿无端占内存 编辑:程序博客网 时间:2024/06/06 09:05
本文转载自:http://www.360doc.com/content/13/0419/16/11965070_279489758.shtml
一般认为这三者执行顺序是静态代码块、非静态代码块、构造函数
public class ExA {static {System.out.println("父类--静态代码块");}public ExA() {System.out.println("父类--构造函数");}{System.out.println("父类--非静态代码块");}public static void main(String[] args) {new ExB();}}class ExB extends ExA {static {System.out.println("子类--静态代码块");}{System.out.println("子类--非静态代码块");}public ExB() {System.out.println("子类--构造函数");}}
执行结果
=====
父类--静态代码块
子类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数
可是静态代码块真的会一定在非静态代码块之前执行吗?
下面这段代码
public class ExA {private static ExA a = new ExA();static {System.out.println("父类--静态代码块");}public ExA() {System.out.println("父类--构造函数");}{System.out.println("父类--非静态代码块");}public static void main(String[] args) {new ExB();}}class ExB extends ExA {private static ExB b = new ExB();static {System.out.println("子类--静态代码块");}{System.out.println("子类--非静态代码块");}public ExB() {System.out.println("子类--构造函数");}}
执行结果
=====
父类--非静态代码块
父类--构造函数
父类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数
子类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数
=====
可以发现非静态代码块并不是一定在静态代码块之后执行的。
我认为此时private static ExA a = new ExA()是静态变量。而java里面静态变量与静态代码块是按代码先后顺序执行。所以就导致非静态代码块在静态代码块之前执行。
0 0
- 静态代码块,代码块,构造函数的执行顺序
- java一般代码块,构造块,构造函数,静态代码块的执行顺序实践
- java 静态代码块 代码块 构造函数执行顺序
- 静态代码块、代码块、构造函数执行顺序
- java中代码块的执行顺序--静态代码块,构造器,普通代码块,构造块,main主函数
- 静态代码块、代码块、构造方法的执行顺序
- 静态代码块 构造代码块 构造函数 的用法和执行顺序
- Java中构造函数、构造代码块、静态代码块等的执行顺序问题
- 静态代码块,构造代码块,构造函数的执行顺序
- 静态代码块,构造代码块,构造函数的执行顺序
- 静态代码块,构造代码块,构造函数之间的差别及先后执行顺序
- 【面相对象】静态代码块、构造代码块和构造函数的执行顺序
- Java中静态代码块、构造代码块构造函数的执行顺序
- Java静态代码块、静态函数、动态代码块、构造函数等的执行顺序
- 静态代码块 构造函数 静态代码块块执行顺序
- 静态代码块、构造代码块、构造方法执行顺序
- 静态代码块,构造代码块,构造方法执行顺序
- 静态代码块、代码块、构造函数的初始化顺序
- 存储过程详解
- C语言基础及指针⑦结构体与指针
- C语言基础及指针⑧文件IO
- OGL纹理对象(Texture)和优化纹理贴图
- imx6 V4l2视频采集基础知识
- 静态代码块,构造代码块,构造函数的执行顺序
- word文档加密保护不能编辑问题
- C语言基础及指针⑨联合体与枚举
- GetTickCount/QueryPerformanceFrequency/QueryPerformanceCounter
- 爸爸又来纪流水账了。
- HDU 1599 find the mincost route
- LightOJ 1138 Trailing Zeroes (III)
- 杭电-2059 龟兔赛跑 (基础DP)
- 补码,负数比整数多表示一个