java中代码执行顺序
之前面试的时候有一道题,是考java的代码执行顺序的。
在大三的时候学习java语言的时候有说,但是在实际工作中用的比较少,所以在这里重新记录复习一下。
比如下面这段代码:
class helloA{ public helloA(){ System.out.println("helloA"); } { System.out.println("I'm A"); } static { System.out.println("Static A"); } } class helloB extends helloA{ public helloB(){ System.out.println("helloB"); } { System.out.println("I'm B"); } static { System.out.println("Static B"); } } public class A { public static void main(String[] args) { new helloB(); } }
执行的结果是:
Static A Static B I'm A helloA I'm B helloB
首先从父类开始执行了所有的static代码块,然后从父类开始,先执行代码块,然后执行构造方法(构造函数)。