一、局部代码块的加载时机与顺序
答案:
D
A
C
B
C
D
解释:
类的加载过程分为:加载->验证->准备->解析->初始化
静态代码块属于类的变量的一部分,在类的加载阶段会被执行调用,是最先被加载的,普通的局部代码块,属于实例对象,当new出对象的时候会率先于构造函数的方法而执行,具体对应于初始化过程中。所以正确的加载顺序就是答案所示了。
二、类的继承与加载顺序
答案:
AC
解释:
本题涉及类的多态,B类知识默默基础A类的共有静态属性,在main函数里面调用B.c,实际上是读取A.c,在此过程中实际访问的是A类,所以是不会有输出B类的静态代码块的。可能会有读者对此有所疑惑,那么我们对B类稍作更改,如下图所示