JAVA 初始化顺序
2015-11-16 13:53
405 查看
1. 通过一个小例子来看具体代码:
package com.lgl.order; class F { public F() { System.out.println("F"); } } class StaticF { public StaticF() { System.out.println("StaticF"); } } class C { public C() { System.out.println("C"); } } class StaticC { public StaticC() { System.out.println("StaticC"); } } /** * 父类 * @author lgl * */ class Father { private F f = new F(); //普通字段 private static StaticF sf = new StaticF(); //静态字段 { //Father 普通代码块 System.out.println("Father 普通代码块"); } static { ////Father 静态代码块 System.out.println("Father 静态代码块"); } public Father() { System.out.println("Father 构造方法"); } } /** * 子类 * @author lgl * */ public class Child extends Father { private C c = new C(); //普通字段 private static StaticC sc = new StaticC(); //静态字段 { //Child 代码块 System.out.println("Child 普通代码块"); } static { //Child 静态代码块 System.out.println("Child 静态代码块"); } public Child() { System.out.println("Child 构造方法"); } public static void main(String[] args) { Child child = new Child(); } }
2. 运行结果:
总结,由此可以看出,JAVA 中的初始化顺序为:
父类静态字段(父类静态代码块) > 子类静态字段(子类静态代码块) > 父类普通字段(父类普通代码块) > 父类构造方法 > 子类普通字段(子类普通代码块) > 子类构造方法
相关文章推荐
- 精选30道Java笔试题解答
- Java使用JAX-WS来写webservice时 Unable to create JAXBContext
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- spring maven 记录
- 详解java类的生命周期
- Java泛型
- MyEclipse在保存时总是building workspace,反应很慢(粘贴学习,以备后用)
- 修改deploy location
- 0601 生成验证码
- eclipse常用快捷键
- myeclipse+maven打包项目源代码
- Java 堆内存
- 使用Netbeans创建java Web项目
- Java内存
- java 集合相关类整理
- 《Thinking In Java》学习笔记:第5章 初始化与清理
- eclipse导出jar包完美解决方案
- java 调用打印机程序