尚硅谷2020最新版宋红康JVM教程-2-类加载子系统

本文详细介绍了JVM的类加载子系统,包括类加载器的作用、加载过程,涵盖加载、验证、准备和解析四个步骤。类加载器负责从文件系统或网络加载Class文件,而Execution Engine决定其是否运行。类加载过程涉及类变量的内存分配和初始化,其中静态变量在方法区分配并初始化。链接阶段的验证确保类文件的正确性,解析则将符号引用转为直接引用。
摘要由CSDN通过智能技术生成

类加载器的作用及加载过程


1.简图

在这里插入图片描述


2.详细图

在这里插入图片描述

3.类加载子系统作用

在这里插入图片描述
1.类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。(在链接阶段中验证阶段去验证文件标识)
2.ClassLoader只负责class文件的加载,至于他是否可以运行,则由Execution Engine(执行引擎)决定。
3.加载的类信息存放于一块称为方法区的内存空间,除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)

4.类加载器ClassLoader角色

在这里插入图片描述
1.class file 存在于本地硬盘上,可以理解为设计师画在纸上的模板,而最终这个模板在执行的时候是要加载到JVM当中来根据这个文件实例化出n个一模一样的实例。
2. class file加载到JVM中,被称为DNA元数据模板,放在方法区。
3.在.class文件-> JVM->最终成为元数据模板,此过程就要一个运输工具(类装载器class Loader),扮演一个快递员的角色。

5.类的加载过程

在这里插入图片描述

1.加载

1.通过一个类的全限定名获取定义此类的二进制字节流
2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构
3.在内存中生成一个代表这个类的java.lang.cass对象,作为方法区这个类的各种数据的访问入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值