Java代码执行顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java代码执行顺序相关的知识,希望对你有一定的参考价值。
下面程序的运行结果是什么()
class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I‘m A class"); } static { System.out.println("static A"); } } public class HelloB extends HelloA { public HelloB() { System.out.println("HelloB"); } { System.out.println("I‘m B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } }
答案:
static A static B I‘m A class HelloA I‘m B class HelloB
解析:考查静态语句块、构造语句块(就是只有大括号的那块)以及构造函数的执行顺序。
对象的初始化顺序:(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;(2)当static语句执行完之后,再执行main方法;(3)如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)。
下面稍微修改下上面的代码,以便更清晰的说明情况:
View Code
此时输出结果为:
static A static B -------main start------- I‘m A class HelloA I‘m B class HelloB I‘m A class HelloA I‘m B class HelloB -------main end-------
以上是关于Java代码执行顺序的主要内容,如果未能解决你的问题,请参考以下文章