JVM (四) 初始化对于类与接口的异同详细解释

初始化 对于类与接口的异同

在这里插入图片描述

  • 在说案例之前,先看一下这个
    在这里插入图片描述

  • 案例 一
    在这里插入图片描述

在这里插入图片描述

所以这里验证了一条  :
1. 当虚拟机初始化一个类的时候要求它的父类都已初始化;
2. 但接口不同,在初始化一个类的时候并不会初始化它的实现类(但是会加载)

注意 (类继承类)

在这里插入图片描述
在这里插入图片描述

通过之前的学习  我们知道  当主动使用一个类的时候,也会初始化它的 父类

1.但是如果  是常量 在编译阶段会存入到调用这个常量方法所在的常量池中,所以并不会对 其使用类与其父类 的加载和初始化,
2. 但是以上一条  只适用于 此常量的值在编译时期就可以确定,
如果常量的值在编译时期无法确定,会导致主动使用这个常量所在的类,显然会导致这个类的初始化(也就一定会在初始化之前进行加载)
  • 案例 二
    ···在这里插入图片描述
结论;
当初始化一个接口的时候  并不会去初始化它的父接口(父接口会加载 但不会初始化)
建议自己动手敲一敲 跑一遍

在这里插入图片描述

配置  类的加载初始化 过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值