文档章节

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

猴亮屏
 猴亮屏
发布于 2014/06/03 21:40
字数 228
阅读 106
收藏 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

共有 人打赏支持
猴亮屏

猴亮屏

粉丝 35
博文 518
码字总数 56802
作品 4
北京
Android工程师
加载中

评论(1)

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

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

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

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

上官胡闹
2016/10/23
29
0
java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

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

LCZ777
2014/08/25
0
0
关于 static 和 final 的一些理解

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

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

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

JasmineBen
05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python进制转换

#进制转换print(bin(10)) #十进制转换成二进制print(oct(10)) #十进制转换成八进制print(hex(10)) #十进制转换成十六进制print(int('1010',2)) #二进制转十进制print(int(...

fadsaa
19分钟前
3
0
syntax error near unexpected token

最近不断重复在虚拟机CentOS测试安装gitlab,因为gitlab有一个脚本需要饭强才能下载,于是我先在windows下载好再上传到虚拟机,可是执行脚本的时候提示“syntax error near unexpected toke...

W_Lu
29分钟前
2
0
Redis基础、高级特性与性能调优

本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导...

Java干货分享
30分钟前
2
0
Redis使用lua脚本实现increase + expire 的原子操作

lua脚本: public Integer incrEX(String key, long defaultExpire){ String script = "local current = redis.call('incr',KEYS[1]);" + " local t = redis.call......

大海201506
31分钟前
1
0
Dubbo 源码分析(一)一环境搭建

环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外...

小刀爱编程
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部