关于静态变量,静态代码块,实例变量,实例代码块,构造函数的执行顺序的总结
2012-03-08 18:10
603 查看
大体上顺序是这样的:(也可以说是优先级,同一级的按顺序执行)
1 静态变量,静态代码块
2 实例变量,实例代码块
3 构造函数
执行顺序是: 1 2 3 4 5
另外有一点还要特别注意:在执行构造函数时,实例变量和实例代码块 会先被执行。
在附上一个把我引到这个问题的例子:
1 静态变量,静态代码块
2 实例变量,实例代码块
3 构造函数
public class Test{ public Test(){ System.out.println("构造方法被执行 5"); } { System.out.println("实例代码块被执行 3"); //实例代码块 } private TestInstance ti = new TestInstance(); //实例变量 private static TestInstance ti1 = new TestInstance(1); //静态变量 static{ System.out.println("静态代码块被执行 2"); //静态代码块 } public static void main(String[] args){ new Test(); } } class TestInstance{ public TestInstance(){ System.out.println("实例变量被构造 4"); } public TestInstance(int i){ System.out.println("静态变量被构造 1"); } }
执行顺序是: 1 2 3 4 5
另外有一点还要特别注意:在执行构造函数时,实例变量和实例代码块 会先被执行。
在附上一个把我引到这个问题的例子:
package com.wind.jdbc; public class TestStaticCode { private static TestStaticCode tsc = new TestStaticCode(); static{ System.out.println("4"); } private InstanceVariable iv = new InstanceVariable(); private TestStaticCode(){ System.out.println("3"); } public static void main(String[] args){ } } package com.wind.jdbc; public class InstanceVariable { static{ System.out.println("1"); } public InstanceVariable(){ System.out.println("2"); } }正确顺序应该是: 1 2 3 4
相关文章推荐
- 关于静态变量,静态代码块,实例变量,实例代码块,构造函数的执行顺序
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
- Java初始化顺序总结及其程序执行过程图- 静态变量、静态代码块、成员变量、构造函数
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
- [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
- Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
- Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
- 三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
- java 关于Java中静态代码块以及构造函数的执行先后顺序
- Java代码执行顺序(静态变量,非静态变量,静态代码块,代码块,构造函数)加载顺序
- Java静态变量 静态代码块 主函数 成员变量 构造代码块 构造函数的执行顺序
- 静态变量、静态块、成员变量、构造函数在类实例化时执行顺序
- 关于继承中静态代码块,构造代码块,构造函数执行顺序
- 关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:
- Java 静态变量、非静态代码块、构造函数的执行顺序
- java关于代码块 , 动态代码块 , 静态代码块 , 静态方法 , 构造函数的执行顺序
- 静态代码块,静态变量,构造函数和构造代码块的执行顺序
- java 中的 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块 执行时机
- java 中的 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块 执行时机
- 静态变量、静态代码块、变量、代码块、构造函数执行顺序