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动志语言支持时

相关推荐
hai3152475433 分钟前
libcore_final.c —— 九章数流矩阵系统
linux·运维·网络
@Ma5 分钟前
企业微信外部群的消息自动化:从协议层到工程实践
运维·自动化·企业微信
zh路西法13 分钟前
【RDKX5交叉编译】基于 QEMU 的 RDK X5 ARM64 rootfs 镜像定制与 chroot 开发环境搭建
linux
我命由我1234526 分钟前
Windows 操作系统 - Windows 查看防火墙是否开启、Windows 查看防火墙放行端口
java·运维·开发语言·windows·java-ee·操作系统·运维开发
iRayCheung36 分钟前
virtualbox安装的ubuntu系统跑numpy报错
linux·ubuntu·numpy
snow@li37 分钟前
DevOps:深入理解 DevOps(2026版)
运维·devops
Safeploy安策数据39 分钟前
等保测评总卡壳?PCI加密卡如何破解政务云与金融合规难题
运维·网络·安全
Dlrb121140 分钟前
Linux系统编程-信号量(线程同步机制)
linux·条件变量·互斥锁·信号量·线程同步
Mr -老鬼42 分钟前
2026移动端自动化平台横向对比指南:15+主流平台深度评测,开发者选型必备
运维·自动化·easyclick·移动测试
无限进步_44 分钟前
Linux进程等待——wait、waitpid与僵尸进程
linux·运维·服务器·开发语言