首页 » 互联网 » 接口的初始化规则_初始化_接口

接口的初始化规则_初始化_接口

雨夜梧桐 2025-01-15 09:31:52 0

扫一扫用手机浏览

文章目录 [+]

结论:父接口的实例化块的内容并未输出,证明在初始化一个类时,并不会先初始化它所实现的接口,我们接着往下看!

结论:仅仅只输出子接口的实例化块的内容解释了在初始化一个接口时,并不会先初始化它的父接口,下面输出的是线程重写的toString方法不影响得出的结论!

接口的初始化规则_初始化_接口 互联网

把稳:只有在真正利用到父接口的时候(如引用接口中所定义的常量时),才会初始化,这点与类不同;其余与类一样,被final润色的静态成员变量初始化所被授予的值不愿准时(运行期确定)不会被放置在常量池当中,以是须要类运行时存在

再来看一个例子加深类加载器准备阶段(赋默认值)与初始化阶段(赋精确值)

new的时候调用布局方法,调用前给两个静态变量赋值,二者都是0然后+1,以是结果都是输出1,我们变换顺序看下面程序

这里counter1准备阶段赋值和初始化后的值都为0后,然后再进入到Singleton的布局方法中,而counter2赋默认值0后进入布局方法为1,末了再初始化值为精确值0,都是根据程序本身的实行顺序进行初始化阶段,下图进一步验证!


反思:上图的例子也从侧面反响了准备阶段授予默认值的主要意义,由于在counter2进行初始化之前,也便是将它授予精确值0之前,在布局方法中的counter2就无法进走运算,由于它没有默认值0,也反响出类加载过程的合理性!

相关文章

接口的初始化规则_初始化_接口

结论:父接口的实例化块的内容并未输出,证明在初始化一个类时,并不会先初始化它所实现的接口,我们接着往下看!结论:仅仅只输出子接口的...

互联网 2025-01-15 阅读 评论0