关于Java变量初始化顺序问题实践
来源:互联网 发布:淘宝店铺访问来源 编辑:程序博客网 时间:2024/05/17 04:00
逛逛论坛,看到里面讨论Java类变量初始化顺序问题,然后自己也想了一下,发现与讨论有点出入,怀疑记忆出了问题,然后马上上机验证,得出一下结论:
Java类变量初始化顺序为:父类静态成员初始化——>父类静态块初始化——>子类静态成员初始化——>子类静态块初始化——>父类成员变量初始化——>父类代码块初始化——>父类构造方法——>子类成员变量初始化——>子类代码块初始化——>子类构造方法。
1、测试类:Test
public class Test {public Test(String string) {System.out.println(string);}}
2、Father类:
public class Father {static Test father = new Test("父类静态成员初始化");Test father2 = new Test("父类成员变量初始化");static {System.out.println("父类静态块初始化");}{System.out.println("父类代码块代码块");}public Father() {System.out.println("父类构造方法");}public Father(String string) {System.out.println(string);}}
public class Son extends Father {static Test son = new Test("子类静态成员初始化");Test son2 = new Test("子类成员变量初始化");static {System.out.println("子类静态块初始化");}{System.out.println("子类代码块代码块");}public Son() {System.out.println("子类构造方法");}public Son(String string) {System.out.println(string);}}
4、场景类
public class TestMain { public static void main(String[] args) { new Son(); }}
很显然上面说的运行结果是正确的。
0 0
- 关于Java变量初始化顺序问题实践
- Java类加载问题:变量初始化顺序
- java变量初始化顺序
- java变量初始化顺序
- JAVA变量初始化顺序
- JAVA变量初始化顺序
- 【Java】变量初始化顺序
- Java变量初始化顺序
- java变量初始化顺序
- java变量初始化顺序
- Java 变量初始化顺序
- Java 变量初始化顺序
- java变量初始化顺序
- Java变量初始化顺序
- java变量初始化顺序
- 关于Java中初始化顺序的问题
- 关于java的初始化顺序的问题
- 关于Java中变量初始化问题
- poj 1080 Human Gene Functions(dp)
- QT:Qsocket长连接的实现(多线程服务器)
- shell script of downloading vim plugin for Linux OS
- Google Map 截图使用
- 云数据的管理
- 关于Java变量初始化顺序问题实践
- 距离矢量路由协议举例——RIP
- Objective-C迁移Swift
- 算法导论习题9.2-3
- 无法直接启动带有类库输出类型的项目
- Mahout 协同过滤 itemBase RecommenderJob源码分析
- C++继承改错题
- swift 笔记 (八) —— 枚举
- ORA-600 [2662] ORACLE 11.2.0.4