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. Step by step Dynamics CRM 2013安装

    原创地址:http://www.cnblogs.com/jfzhu/p/4008391.html 转载请注明出处   SQL Server可以与CRM装在同一台计算机上,也可安装在不同的计算机上.演示 ...

  2. 记一个简单的保护if 的sh脚本

    真是坑爹,就下面的sh,竟然也写了很久! if [ `pwd` != '/usr/xx/bin/tomcat' ] then echo "rstall is not allowed in c ...

  3. 敏捷是什么?PMO是什么?

    敏捷组织中PMO应遵循的准则 敏捷改变了人们的工作方式,不仅仅是开发部门,而且还包括其它的部门,例如HR.财务以及PMO等.在大多数组织中,PMO是一个控制体.它指导项目团队的规范.模板以及流程.目前 ...

  4. MySQL外键之级联

    简介 MySQL外键起到约束作用,在数据库层面保证数据的完整性.例如使用外键的CASCADE类型,当子表(例如user_info)关联父表(例如user)时,父表更新或删除时,子表会更新或删除记录,这 ...

  5. SQLyog图形化l数据库的操作和学习

    1:首先SQLyog作为mysql的图形化操作工具,是一个收费的工具,但是在天朝大国,任何收费的软件都可以被破解,具体软件的安装不做多叙述,支持正版,毕竟作为一个开发人员,辛辛苦苦开发出来的软件,还指 ...

  6. HTML5系列:HTML5与HTML4的区别

    1. 语法的改变 1.1 DOCTYPE声明 DOCTYPE声明在HTML文件中必不可少,位于文件第一行. HTML4中声明方法: <!DOCTYPE html PUBLIC "-// ...

  7. JAVA的静态变量、静态方法、静态类

    静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                ...

  8. 使用pudb调试python

    本博客主要用于讲解如何使用pudb进行python调试: 1.安装 sudo pip install pudb pip list查看安装结果: 2.使用 测试程序: #!/usr/bin/env py ...

  9. Android的PopWindow动画实现

    转载博客:http://www.open-open.com/lib/view/open1423626956186.html 1.实现步骤 1.主布局activity_main.xml <Rela ...

  10. Android搜索框效果

    转载:http://blog.csdn.net/walker02/article/details/7917392 需求:项目中的有关搜索的地方,加上清空文字的功能,目的是为了增加用户体验,使用户删除文 ...