关于Java的静态块和和非静态块(构造块)的加载顺序
2016-02-26 13:49
295 查看
http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html
顺序如下:
父类静态初始化块
子类静态初始化块
父类非静态初始化块
父类的构造方法
子类非静态初始化块
子类的构造方法
如果有静态方法的调用的话,静态初始化块和静态方法的调用的先后顺序,是根据写在类中的先后顺序来的。
例如:下面的的情况的话,先调用静态初始化块,再调用parentStaticMethod2。
static
{
System.out.println("父类静态初始化块");
}
public static int t = parentStaticMethod2();
public static int parentStaticMethod2()
{
System.out.println("父类的静态方法2");
return 9;
}
如果把调用静态方法的赋值语句放到最前面的话,先调用parentStaticMethod2,再调用静态初始化块。
public static int t = parentStaticMethod2();
static
{
System.out.println("父类静态初始化块");
}
public static int parentStaticMethod2()
{
System.out.println("父类的静态方法2");
return 9;
}
顺序如下:
父类静态初始化块
子类静态初始化块
父类非静态初始化块
父类的构造方法
子类非静态初始化块
子类的构造方法
如果有静态方法的调用的话,静态初始化块和静态方法的调用的先后顺序,是根据写在类中的先后顺序来的。
例如:下面的的情况的话,先调用静态初始化块,再调用parentStaticMethod2。
static
{
System.out.println("父类静态初始化块");
}
public static int t = parentStaticMethod2();
public static int parentStaticMethod2()
{
System.out.println("父类的静态方法2");
return 9;
}
如果把调用静态方法的赋值语句放到最前面的话,先调用parentStaticMethod2,再调用静态初始化块。
public static int t = parentStaticMethod2();
static
{
System.out.println("父类静态初始化块");
}
public static int parentStaticMethod2()
{
System.out.println("父类的静态方法2");
return 9;
}
相关文章推荐
- java容器学习之——Set
- spring框架的jar包下载
- java 获取当前路径
- Java中命名规则及基本数据类型的长度、表示范围
- Java中命名规则及基本数据类型的长度、表示范围
- eclipse下Android开发常见问题处理
- Java 性能分析工具一览(JDK自带)
- 0-1背包问题蛮力法求解(java版本)
- Java泛型(一) 泛型的概念 基础
- 局域网象棋 Java
- Java在DOS命令下的运行及其API文档制作过程
- Java继承
- java的继承练习
- java注解XML
- java 字符串初探(1)
- spring与mybatis整合
- JAVA String.format 方法使用介绍
- Java学习笔记(三):数组
- JAVA学习第二十九课(经常使用对象API)- String类
- 类属性复制实现