美文网首页随笔-生活工作点滴
JAVA变量代码块等加载顺序

JAVA变量代码块等加载顺序

作者: 进击的阿修罗 | 来源:发表于2019-07-05 10:27 被阅读0次

平时我们在面试的时候或者笔试的时候,经常会有这样的题目,给你一段代码,让你选出打印的顺序。那么在java中 类的变量,静态代码块,匿名代码块的加载顺序是怎样的呢?我们来看下面的一段代码:

图1 图2

通过我们执行以后,发现,打印顺序是静态块(静态变量)——>成员变量——>构造方法——>静态方法 。

1、静态代码块(只加载一次) 2、构造方法(创建一个实例就加载一次)3、静态方法需要调用才会执行,所以最后结果没有e 

我们继续看:

打印类 父类 子类

执行main方法,程序输出顺序为:1 3 4 5 a b e 2 6 7 c f d 2 6 7 c f d

输出结果表明,程序的执行顺序为: 

如果类还没有被加载:

1、先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。

2、执行子类的静态代码块和静态变量初始化。

3、执行父类的实例变量初始化

4、执行父类的构造函数

5、执行子类的实例变量初始化

6、执行子类的构造函数

如果类已经被加载:

则静态代码块和静态变量就不用重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造方法。

相关文章

  • JAVA变量代码块等加载顺序

    平时我们在面试的时候或者笔试的时候,经常会有这样的题目,给你一段代码,让你选出打印的顺序。那么在java中 类的变...

  • java相关零碎知识

    java初始化,加载顺序: 父类的静态成员变量,父类静态代码块,子类的静态成员变量,子类的静态代码块,父类非静态成...

  • java 代码块顺序

    java 代码块的执行顺序: 静态变量 > 非静态变量静态变量 > 静态代码块 > 非静态代码块父构造 > 子构...

  • static变量,static代码块,构造函数,代码块等的加载顺

    运行结果: 在类加载阶段,先顺序执行static变量的赋值 顺序执行static代码块(static代码块只有在类...

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • java程序执行顺序

    Java 类中代码的执行顺序深入了解Java程序执行顺序 单个类: static变量—>Static代码块—> m...

  • JAVA的类加载顺序

    理解关于java类的加载顺序 首先来捋一捋java类的加载顺序吧 父类静态代码块 》》静态代码初始化,静态属性(带...

  • java之静态代码块与构造方法加载次序

    java中的静态代码块,非静态块,构造办法的加载顺序是这样的:静态代码块 (程序加载时一次)--->非静态块(每次...

  • 静态代码块、静态变量、成员变量等加载顺序详解

    静态代码块、静态变量、成员变量等加载顺序详解 1 单个类的初始化顺序 一个类 无论创建多少对象,静态数据只占用一份...

  • java代码的执行顺序

    若类还未被加载 先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关...

网友评论

    本文标题:JAVA变量代码块等加载顺序

    本文链接:https://www.haomeiwen.com/subject/aekshctx.html