举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
来源:互联网 发布:mac文件怎么保存 编辑:程序博客网 时间:2024/04/29 11:02
例子如下:
public class TestCodeSeg {
static {
System.out.println("1");
}
{
System.out.println("2");
}
public TestCodeSeg() {
System.err.println("3");
}
public static void main(String[] args) {
new TestCodeSeg();
}
}
运行结果如下:
run:
1
3
2
成功生成(总时间:0 秒)
run:
1
2
3
成功生成(总时间:0 秒)
run:
3
1
2
成功生成(总时间:0 秒)
三种不同的运行结果说明它们的执行顺序是:
到目前为止能确定的一句话就是静态代码块比非静态代码块先执行。而构造函数的执行顺序不能确定,有可能在非静态代码块之后,有可能在它之前,也有可能在静态代码块之前执行。
再举例说明,如下所示:
public class Father {
//父类静态代码块
static {
System.out.println("父类---静态代码块");
}
//父类非静态代码块
{
System.out.println("父类===非静态代码块");
}
//父类构造函数
public Father() {
System.out.println("父类~~~构造函数");
}
//父类的main方法
/*public static void main(String args[]){
Father f=new Son();
}*/
}
class Son extends Father {
//static Son s=new Son();
//子类静态代码块
static {
System.out.println("子类---静态代码块");
}
//子类非静态代码块
{
System.out.println("子类===非静态代码块");
}
//子类构造函数
public Son(){
System.out.println("子类~~~构造函数");
}
//子类的main方法。
public static void main(String args[]){
Father f=new Son();
}
}
运行结果如下:
run:
父类---静态代码块
子类---静态代码块
父类===非静态代码块
父类~~~构造函数
子类===非静态代码块
子类~~~构造函数
成功生成(总时间:0 秒)
根据运行结果可知:
父类和子类的静态代码块先执行,其次是执行父类的非静态代码块和构造函数,最后执行的是子类的非静态代码块和构造函数。
- 举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
- Java中静态代码块、非静态代码块和构造函数的执行顺序
- Java中静态代码块、非静态代码块、构造函数的执行顺序与作用
- java中静态代码块,非静态代码块,构造函数之间的执行顺序
- JAVA继承关系中静态代码块、非静态代码块,构造函数的执行顺序
- 举例说明构造代码块、静态、非静态代码块的执行顺序
- 举例说明Java中代码块的执行顺序(非静态代码块)
- JAVA静态代码块、非静态代码块、构造函数的执行顺序
- Java中静态代码块、非静态代码块、构造方法三者的执行顺序
- Java中静态代码块、非静态代码块以及构造函数的初始化顺序
- java中代码块的执行顺序--静态代码块,构造器,普通代码块,构造块,main主函数
- Java中构造函数、构造代码块、静态代码块等的执行顺序问题
- Java中静态代码块、构造代码块构造函数的执行顺序
- 关于java代码中静态代码块、非静态构造代码块以及构造方法的执行顺序
- java 静态代码块 代码块 构造函数执行顺序
- 静态代码块、非静态代码块、构造函数的执行顺序
- 静态代码块&非静态代码块&构造函数的执行顺序
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- 关于Swype滑行输入法是gms才支持的理解
- c#(测试)--在vs2010中创建WebService
- flash 性能分析工具
- Cocos2d-x 游戏中子弹的设计
- 代码混淆和baksmali,smali反编译研究
- 举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
- 关于Session(javax.servlet.HttpSession)持久化----为什么实体类需要实现序列化接口
- cocos2d-x深入改造:打造健康的游戏研发流程
- Codeforces Round #179 (Div. 1)(完全)
- Hibernate教程02_ID生成策略
- struts2和java命名规范的区别
- 状态模式
- 图灵奖的现状以及最新一届图灵奖得主和他们的贡献
- document.documentElement的一些用法