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

相关推荐
。puppy38 分钟前
再来1章linux系列-19 防火墙 iptables 双网卡主机的内核 firewall-cmd firewalld的高级规则
linux·运维·服务器
文牧之2 小时前
Oracle RAC 中的 RBAL 进程
运维·数据库·oracle
斯普信专业组8 小时前
Apidog MCP服务器,连接API规范和AI编码助手的桥梁
运维·服务器·人工智能
wayuncn8 小时前
深度解析物理机服务器故障修复时间:影响因素与优化策略
运维·服务器·物理机·服务器租用·服务器托管·物理服务器·哈尔滨idc
暮乘白帝过重山8 小时前
JVM类加载机制
jvm
一人一萧十只猫�8 小时前
Linux SSH 远程连接全攻略:从加密原理到实战配置(含图解)
linux·服务器·网络
人间不清醒ab9 小时前
Ubuntu ping网络没有问题,但是浏览器无法访问到网络
linux·运维·ubuntu
babytiger9 小时前
为 Windows 和 Ubuntu 中设定代理服务器的详细方法
linux·windows·ubuntu
黄暄9 小时前
Docker项目部署深度解析:从基础命令到复杂项目部署
运维·笔记·docker·容器·持续部署
默心9 小时前
centos把jar包配置成服务并设置开机自启
linux·centos·jar