JVM类加载

一、类记载过程

1、通过类的全限定名获取存储该类的class文件

2、解析成运行时数据,即instanceKlass实例,存放到方法区

3、在堆区生成该类的class对象,即instanceMirrorKlass实例

二、将.class文件解析成什么?类的元信息在JVM中如何存储

加载成Klass,Klass分为InstanceKlass和ArrayKlass

InstanceKlass

Java类 (非数组)

InstanceMirrorKlass(镜像类)

Class对象(堆区)

InstanceRefKlass

引用

InstanceClassLoaderKlass

ArrayKlass

TypeArrayKlass:描述java中基本数据类型的数据结构

ObjectArrayKlass: 描述java中引用类型的数据结构

三、Java中的数组

1、静态数据类型 JVM中内置的八种数据类型

2、动态数据类型 运行时动态生成的

如何证明

newarray

创建一个制定原始类型(如int,float,char)的数组,并将其引用值压入栈顶

TypeArrayKlass: 基本类型的数组在JVM中的存在形式

anewarray

创建一个引用型(如类,接口,数组)的数组,并将其引用值压入栈顶

ObjArrayKlass: 引用类型的数组在JVM中的存在形式

四、何时加载

1、 new getstatic, putstatic, invokestatic

2、 反射

3、 初始化一个类的子类会去加载其父类

4、 启动类(main函数所在类)

5、 当使用idk.7动志语言支持时

相关推荐
乐迪信息几秒前
乐迪信息:AI摄像机识别煤矿出入井车辆数量异常检测
大数据·运维·人工智能·物联网·安全
张童瑶3 分钟前
Linux SSH配置密钥文件及免密登录
linux·运维·ssh
tianyuanwo4 分钟前
Linux密码加密技术深度解析:从盐值到加密算法的完整指南
linux·密码加密
翼龙云_cloud7 分钟前
腾讯云渠道商:腾讯云快照和镜像备份区别在哪?
运维·服务器·云计算·腾讯云
YMatrix 官方技术社区26 分钟前
YMatrix 高可用详解:3 种镜像策略在节点宕机时表现有何不同?
运维·数据库·数据仓库·ai·数据库开发·数据库架构·ymatrix
CodeAmaz32 分钟前
JVM一次完整GC流程详解
java·jvm·gc流程
vortex537 分钟前
Bash 替换机制(三):变量替换
linux·开发语言·bash
Elastic 中国社区官方博客39 分钟前
在 Kibana 中可视化你的 Bosch Smart Home 数据
大数据·运维·elasticsearch·搜索引擎·信息可视化·全文检索·kibana
松涛和鸣40 分钟前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库
小虾米vivian1 小时前
dmetl5 web管理平台 监控-流程监控 看不到运行信息
linux·服务器·网络·数据库·达梦数据库