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

本文介绍了Java中类加载的顺序,包括加载、验证、准备、解析和初始化阶段,详细解释了静态代码块与局部代码块的加载时机。接着探讨了类的继承与加载顺序,以及多态在静态代码块调用中的表现。此外,文章还讨论了字符串比较的原理,强调了常量池的作用,并通过实例解释了整数装箱、拆箱的过程以及缓存机制。
最低0.47元/天 解锁文章
46万+

被折叠的 条评论
为什么被折叠?



