Java类初始化顺序
2010-10-20 18:12
176 查看
原创作品,转载请注明出自xelz's blog
博客地址:http://mingcn.cnblogs.com/
本文地址:http://mingcn.cnblogs.com/archive/2010/10/20/JavaClassInitOrder.html
Java技术笔试及面试中常出的问题,我们总结一下
直接看例子:
博客地址:http://mingcn.cnblogs.com/
本文地址:http://mingcn.cnblogs.com/archive/2010/10/20/JavaClassInitOrder.html
Java技术笔试及面试中常出的问题,我们总结一下
直接看例子:
args) throws Exception{ new ExtendedClass()] 执行结果BaseClass:Static Initialization Block BaseClass:Static Variable ExtendedClass:Static Variable ExtendedClass:Static InitializationBlock BaseClass:Variable BaseClass:Initialization Block BaseClass:Constructor ExtendedClass:Initialization Block ExtendedClass:Variable ExtendedClass:Constructor可以看出,在创建一个子类对象时,执行顺序是父类静态初始化块及静态成员变量 子类静态初始化块及静态成员变量 父类非静态初始化块及非静态成员变量 父类构造函数 子类非静态初始化块及非静态成员变量 子类构造函数而关于同为静态(或非静态)的初始化块和成员变量执行的先后顺序是怎样呢, 仔细看例子就可以看出,例子中既有初始化块在成员变量之前,也有成员变量在初始化块之前的情况 运行结果是按源代码书写顺序执行 其实下面的两种书写方式是等价的 class test { static type t; static { someMethod(); } } //二者等价 class test { static { type t; someMethod(); } }
相关文章推荐
- java类 静态实例初始化顺序
- java类初始化顺序
- java类静态域、块,非静态域、块,构造函数的初始化顺序
- Java类的初始化顺序
- Java类的初始化顺序探究
- java类的初始化顺序
- 转!!关于java类初始化顺序
- java类初始化的顺序
- java类的初始化顺序
- java类中元素初始化顺序详解
- java类的加载以及初始化顺序
- java类的初始化程序块以及被实例化时候的执行顺序
- java类加载和实例化:静态代码块、初始化代码块、构造方法的执行顺序
- java类中数据成员初始化的顺序
- java类对象的初始化顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- JAVA类的初始化顺序
- Java类的初始化顺序
- java类静态域、块,非静态域、块,构造函数的初始化顺序
- java类初始化顺序