2021-09-12

本文深入探讨了JVM的类加载过程,特别是初始化阶段。详细解释了如何在运行时动态生成数组类型及其与Object的关系。同时,阐述了接口初始化的特点,即父接口不会因子接口的初始化而初始化,只有在实际使用时才会触发。文中还通过实例展示了类变量的初始化顺序。
摘要由CSDN通过智能技术生成

JVM类加载学习第二天

当一个常量的值并非编译期间可以确定的,那么其值就不会被放到调用类的常量池中,
这时在程序运行时,会导致主动使用这个常量所在的类,会导致这个类被初始化。
在这里插入图片描述
输出在这里插入图片描述

对于数组实列来说,其类型是由JVM在运行期动态生成的,表示为[Lcom.Class
这种形式。动态生成的类型,其父类型就是Object.
对于数组来说,javaDoc经常将构成数组的元素为Component,实际上就是将数组
降低一个维度后的类型。
在这里插入图片描述
输出:在这里插入图片描述

当一个接口在初始化时,并不要求其父接口都完成了初始化。
只有在真正使用到父接口的时候(如引用接口中所定义的常量时),才会初始化。

初始化阶段类变量的从上到下开始执行
在这里插入图片描述
以上代码输出2,1,2,0
![

](https://img-blog.csdnimg.cn/f4336448661c46f1aac1006ee2a821f3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfNDAzNzg5NTk=,size_20,color_FFFFFF,t_70,g_se,x_16)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值