package com.helei.init;

 class Log {
public static String fatherStaticString(){System.out.println("father's static field");return "";}
public static String sonStaticString(){System.out.println("son's static field");return "";}
public static String fatherNormalString(){System.out.println("father's normal field");return "";}
public static String sonNormalString(){System.out.println("son's normal field");return "";}
}
class Father{
String fatherNormalField1 = Log.fatherNormalString();
static String fatherStaticField1 = Log.fatherStaticString(); {System.out.println("Father's normal block1");} static {System.out.println("Father's static block1");}
static {System.out.println("Father's static block2");} static String fatherStaticField2 = Log.fatherStaticString(); {System.out.println("Father's normal block2");} String fatherNormalField2 = Log.fatherNormalString(); Father(){
System.out.println("Father's constructor");
}
}
public class Son extends Father {
String sonNormalField1 = Log.sonNormalString();
static String sonStaticField1 = Log.sonStaticString(); {System.out.println("Son's normal block1");} static {System.out.println("Son's static block1");}
static {System.out.println("Son's static block2");} static String sonStaticField2 = Log.sonStaticString(); {System.out.println("Son's normal block2");} String sonNormalField2 = Log.sonNormalString(); Son(){
System.out.println("Son's constructor");
} public static void main(String[] args){
Son son1 = new Son();
Son son2 = new Son();
}
}
 father's static field
Father's static block1
Father's static block2
father's static field
son's static field
Son's static block1
Son's static block2
son's static field
father's normal field
Father's normal block1
Father's normal block2
father's normal field
Father's constructor
son's normal field
Son's normal block1
Son's normal block2
son's normal field
Son's constructor
father's normal field
Father's normal block1
Father's normal block2
father's normal field
Father's constructor
son's normal field
Son's normal block1
Son's normal block2
son's normal field
Son's constructor 1、父类静态字段/代码块(并列优先级,按代码顺序)
2、子类静态字段/代码块(并列优先级,按代码顺序)
3、父类普通字段/代码块(并列优先级,按代码顺序)
4、父类构造方法
5、子类普通字段/代码块(并列优先级,按代码顺序)
6、子类构造方法

  Java初始化顺序:

    1、先父类后子类

    2、先静态字段或代码块,后普通字段或代码块(并列优先级,按代码顺序)

    3、先父类构造方法,后子类构造方法

Java初始化顺序的更多相关文章

  1. [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数

    Java初始化顺序1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包 ...

  2. C# 与Java初始化顺序及异同(转)

    C#初始化顺序 类成员变量初始化先于类的构造函数 静态成员变量先于实例变量 子类成员变量先于父类成员变量(java相反) 父类构造函数先于子类构造函数 参考实例: using System; //us ...

  3. java 初始化顺序

    java 变量类型如下: 实例变量: 类变量: 初始化途经如下: 实例变量 --声明时,初始化: --非静态初始化块内,初始化: --构造函数内,初始化: 实例1: public class bean ...

  4. java 初始化顺序问题

    今天在<thinking in java>上面看了关于初始化问题,之前从来都没有深入考虑过,这次算是把它搞明白了,所以记录一下: 这个不是我看到的初始化顺序问题,在网上搜索的时候发现的,感 ...

  5. Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)

    1.执行顺序 1.1.一个类中的初始化顺序 类内容(静态变量.静态初始化块) => 实例内容(变量.初始化块.构造器) 1.2.两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)= ...

  6. 10、java初始化顺序

      在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包括静态代码和变 ...

  7. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  8. Java 类成员的初始化顺序

    Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究.   1  无继承情况下的Jav ...

  9. Android(java)学习笔记136:Java类初始化顺序

    Java类中初试化的顺序: 由此得出Java普通类初始化顺序结论: 静态变量 静态初始化块 变量 初始化块 构造器 由此得出Java继承类初始化顺序结论:     1 .继承体系的所有静态成员初始化( ...

随机推荐

  1. 如何创建一个AJAX-Enabled WCF Service

      原创地址:http://www.cnblogs.com/jfzhu/p/4041638.html 转载请注明出处   前面的文章中介绍过<Step by Step 创建一个WCF Servi ...

  2. kafka 安装出现的几个问题

    1.安装kafka的过程出现两个问题 1)错误: 找不到或无法加载主类 kafka.Kafka 原因:    下载的是源码包,需要编译.可以下载Binary downloads: 2) ERROR I ...

  3. datagrid可编辑表格

    使用datagrid对商品数量和单价进行修改 $(function() { var $dg = $("#zhong"); $dg.datagrid({ url : "ge ...

  4. Linux线程体传递参数的方法详解

    传递参数的两种方法 线程函数只有一个参数的情况:直接定义一个变量通过应用传给线程函数. 例子 #include #include using namespace std; pthread_t thre ...

  5. Entity Framework Code First实体关联数据加载

    在项目过程中,两个实体数据之间在往往并非完全独立的,而是存在一定的关联关系,如一对一.一对多及多对多等关联.存在关联关系的实体,经常根据一个实体的实例来查询获取与之关联的另外实体的实例. Entity ...

  6. OpenCASCADE Conic to BSpline Curves-Circle

    OpenCASCADE Conic to BSpline Curves-Circle eryar@163.com Abstract. The conic sections and circles pl ...

  7. OpenCascade Draw Test Harness

    OpenCascade Draw Test Harness eryar@163.com Abstract. Draw is a command interpreter based on Tcl/Tk ...

  8. javascript运动系列第二篇——变速运动

    × 目录 [1]准备工作 [2]加速运动 [3]重力运动[4]减速运动[5]缓冲运动[6]加减速运动[7]往复运动[8]变速函数 前面的话 前面介绍过匀速运动的实现及注意事项,本文在匀速运动的基础上, ...

  9. RESTful API URI 设计: 判断资源是否存在?

    相关的一篇文章:RESTful API URI 设计的一些总结. 问题场景:判断一个资源(Resources)是否存在,URI 该如何设计? 应用示例:判断 id 为 1 用户下,名称为 window ...

  10. C算法编程题(二)正螺旋

    前言 上一篇<C算法编程题(一)扑克牌发牌> 写东西前总是喜欢吐槽一些东西,还是多啰嗦几句吧,早上看了一篇博文<谈谈外企涨工资那些事>,里面楼主讲到外企公司包含的五类人,其实不 ...