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

相关推荐
爱瑞瑞14 分钟前
🐧深入浅出的认识 Linux 指令
linux·shell
星哥说事26 分钟前
开源综合性网络安全检测和运维工具-TscanClient
运维·web安全·开源
ajassi200027 分钟前
开源 java android app 开发(十一)调试、发布
android·java·linux·开源
小李飞刀李寻欢1 小时前
使用kubeadm部署Kubernetes(k8s)集群的步骤
linux·服务器·ubuntu·kubernetes·k8s
运维成长记1 小时前
阿里云实践创建实例步骤
linux·运维·服务器·阿里云·云计算
THe CHallEnge of THe BrAve1 小时前
Linux检验库是否安装成功
linux·运维·服务器
Hello.Reader1 小时前
NGINX 四层 SSL/TLS 支持ngx_stream_ssl_module
运维·nginx·ssl
Estar.Lee2 小时前
如何在Debian中提高phpstorm的稳定性
运维·debian·api·免费api·phpstorm
藥瓿锻2 小时前
2024 CKS题库+详尽解析| 1. kube-bench 修复不安全项
运维·安全·docker·云原生·容器·kubernetes·cks
晓北斗NorSnow2 小时前
没有宝塔面板的服务器上的WordPress网站打包下载到本地?
运维·服务器