您的位置:首页 > 编程语言 > Java开发

java类初始化顺序 ----需要研究的

2015-03-21 17:02 141 查看
http://ini.iteye.com/blog/2007835

public class TestStaticCon {

public static int a = 0;

static {

a = 10;

System.out.println("父类的静态代码块在执行a=" + a);

}

{

a = 8;

System.out.println("父类的非静态代码块在执行a=" + a);

}

public TestStaticCon() {

this("父类带参构造方法中a的值:" + TestStaticCon.a); // 调用另外一个构造方法

System.out.println(a);

System.out.println("父类无参构造方法在执行a=" + a);

}

public TestStaticCon(String n) {

System.out.println(n);

System.out.println(a);

}

public static void main(String[] args) {

TestStaticCon tsc = null ;

System.out.println("!!!!!!!!!!!!!!!!!!!!!");

tsc = new TestStaticCon();

}

}

结论:静态代码块是在类加载时自动执行的,非静态代码块是在创建对象时自动执行的代码,不创建对象不执行该类的非静态代码块。且执行顺序为静态代码块------非静态代码块----构造函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: