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

java代码执行顺序

2016-10-04 11:48 232 查看

java类中的代码执行顺序

静态变量(静态代码块)->进入main方法->普通成员变量(类代码块)->构造方法。其中,静态变量或静态代码块按声明的先后顺序执行,普通成员变量或类代码块也按声明的先后顺序执行。下面的例子有清晰说明:



接下来是一个例子

A.java

public class A{
public static int a =print(1);
public int aa=print(2);

static{
print(3);
}

{
print(4);
}

public A(String str){
System.out.println(5);
}

public static int print(int i){
System.out.println(i);
return i;
}
}


B.java

public class B extends A{
public static int b=print(6);
public int bb=print(7);

static{
print(8);
}

public B(String str){
super(str);
System.out.println(str);
}

public static int print(int i){
System.out.println(i);
return i;
}

public static void main(String args[]){
B b=new B("winner");
}
}


>

Java虚拟机首先装载父类,初始化父类中的静态变量或静态代码块: 输出1、3

然后装载子类,初始化子类的静态变量或静态代码块: 输出6、8

接着如上例所示,这时候要进入main方法,直到遇到new关键字,实例化子类;

实例化子类过程中,先调用super()实例化父类;

实例化父类过程中先初始化父类普通成员变量或类代码块: 输出2、4

然后执行父类构造方法:输出5

super()执行完毕后,按顺序实例化子类普通成员变量或类变量: 输出7

然后执行子类构造方法中的其他部分: 输出winnner

此时,new关键字实例化过程结束,接着执行main方法接下来部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java