文档章节

一道题理清父子类中 静态代码块和构造方法执行顺序

猴亮屏
 猴亮屏
发布于 2014/06/03 21:40
字数 228
阅读 110
收藏 5

我有一道经典的试题,倒在上面的人许多,今天就剧透了,呵呵:

01 public class A {
02     public A(){
03         System.out.println("A3");
04     }
05     {
06         System.out.println("A1");
07     }
08     static {
09         System.out.println("A2");
10     }
11 }

再写个B类

01 public class extends A {
02     public B(){
03         System.out.println("B3");
04     }
05     {
06         System.out.println("B1");
07     }
08     static {
09         System.out.println("B2");
10     }
11
12
13     public static void main(String[] args) {
14         A a1=new B();
15         B a2=new B();
16     }
17 }

然后执行B类的main方法,请给出在控制台输出的内容是怎样的。

答案:

1.先执行静态代码块:2

2.静态代码块按类加载的顺序:A B

3.先初始化父类再初始化子类:A B

4.先执行类代码块再执行构造方法:1 3

综上:A2 B2 A1 A3 B1 B3 A1 A3 B1 B3


本文转载自:http://www.oschina.net/question/1245989_157282

共有 人打赏支持
猴亮屏

猴亮屏

粉丝 36
博文 530
码字总数 57346
作品 4
北京
Android工程师
私信 提问
加载中

评论(1)

zqq90
zqq90
好例子
Java中类的加载顺序剖析

这其实是去年校招时的一道阿里巴巴的笔试题,如果没记错的话,当时是作为Java方向的一道选做大题。当然题意没有这么直白,题目只要求你写出程序运行后所有System.out.println的输出结果,其中...

火力全開
2016/10/09
3
0
java继承:父类和子类的关系

继承是java实现多态的一个重要元素之一,本文主要是自我学习了解java继承中父类和子类的关系。下面看父类和子类的源码 父类: 子类: 用例1(父类引用指向子类对象)测试执行顺序: 本例主要...

上官胡闹
2016/10/23
29
0
关于 static 和 final 的一些理解

---恢复内容开始--- 今天主要回顾一下 static 和 final 着两个关键字。 1. static - 静态 修饰符 - 用于修饰数据(变量、对象)、方法、代码块以及内部类。 1.1 静态变量 用static修饰变量,...

唐雕
2018/08/11
0
0
Java和Android ClassLoder对比以及Class加载过程

Java的ClassLoder的父子关系如下:Bootstrap--ExtClassClassLoader---AppClassLoader。 JVM启动时先运行启动类加载器Bottstrap,主要加载Java核心API;然后加载扩展类加载器ExtClassLoder,该...

JasmineBen
2018/05/23
0
0
java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

/* * 几大原则 * 一、静态成员变量(Static) * 1、静态成员变量为类变量,所有对象共享同一内存空间 * 2、静态成员变量的声明和定义仅在首次加载类时执行一次 * 3、首次加载类时首先对所有静...

LCZ777
2014/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink TableEnvironment的scan操作

序 本文主要研究一下flink TableEnvironment的scan操作 实例 //Scanning a directly registered tableval tab: Table = tableEnv.scan("tableName")//Scanning a table from a registered......

go4it
1分钟前
0
0
JS检测移动端横竖屏的代码

移动端的设备提供了一个事件:orientationChange事件 这个事件是苹果公司为safari中添加的。以便开发人员能够确定用户何时将设备由横向查看切换为纵向查看模式。 在设备旋转的时候,会触发这...

不负好时光
2分钟前
0
0
ArrayList 优化

优化是 基于数据的大小 当数据量过大 性能达到瓶颈才需要针对性的做优化 contain 优化 可以转换为set add 大批量操作 先预估数据量 调用 `ensureCapacity(int minCapacity)` 先扩容后操作...

NotFound403
3分钟前
0
0
Lifecycle Aware Data Loading with Architecture Components

In my previous blog post, I talked about how you can use Loaders to load data in a way that automatically handles configuration changes. With the introduction of Architecture Co......

SuShine
4分钟前
0
0
性能测试汇总

服务器带宽测试 iperf测试带宽 wget -c https://codeload.github.com/esnet/iperf/tar.gz/3.1.6 tar zxvf 3.1.6cd iperf*yum install gcc./configure --prefix=/usr/local/iperf#指定......

以谁为师
8分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部