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父子类静态代码/非静态代码/构造函数执行顺序
- java代码执行顺序
- Java基础-代码执行顺序(重要)
- js中与Java代码及ajax的执行顺序问题
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- 包含继承关系的Java程序执行顺序(代码实例)
- [java起步]构造函数、构造代码快、静态代码块的执行顺序
- java代码执行顺序
- java中代码执行顺序(静态代码块、构造函数)
- jsp中java代码、jsp代码、js代码执行的顺序
- Java中创建对象的时候代码执行顺序
- java 代码里面static程序段执行顺序
- Java代码的执行顺序
- Java:类中代码的执行顺序
- java代码的执行顺序
- java代码执行的顺序
- Java类代码执行顺序
- java中代码执行顺序小结
- java创建对象时代码执行顺序探讨
- Java代码执行顺序-简单版