类加载机制 怼烎@ 2021-10-01 08:26 454阅读 0赞 ## java类加载的全过程包含5个步骤: ## * 加载,验证,准备,解析,初始化 * 而验证,准备,解析又可以合并为一个阶段:连接 ![11172442-c07c2c872a67bcfd.png][] BB76B1F4-1F9F-45D6-84B3-614F65E0D370.png ## 各过程具体完成的操作 ## 1.**加载**: 加载阶段需要完成三个操作:1).通过一个类的全限定名来获取该类的二进制字节流 2).将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构 3).在内存中生成该类的Class对象(虽然是一个对象,但是不放在堆内存,放在方法区),作为方法区该类的各种数据的访问入口 2.**验证**: 验证是连接的第一个阶段,验证是非常重要的,这个阶段是否严谨,直接决定了java虚拟机能否承受恶意代码的攻击,如果不经历验证阶段,如果载入了有害的字节流,很可能会导致系统直接崩溃 验证有以下4个验证动作: * 文件格式验证: 主要验证字节流是否符合Class文件格式的规范,是否能在当前版本虚拟机中处理 * 元数据验证 主要是对字节码描述的信息进行语义分析,保证其描述的信息符合java语言的规范 * 字节码验证 是整个验证过程中最复杂的一个部分,通过数据流和控制流分析,确定程序语义是否合法符合逻辑,对类的方法体进行校验 * 符号引用验证 发生在虚拟机将符号引用转换为直接引用时发生,这个验证将在连接的第三个阶段(解析)中发生 3.**准备**: 准备是正式为类变量(被static修饰的变量)分配内存和赋初始值的阶段,这些变量使用的内存都在方法区中分配(此时只是对被static修饰的变量赋值,实例变量将在对象实例化的时候一起分配在堆中) 4.**解析**: 解析是虚拟机将常量池内的符号引用转为直接引用的过程 解析针对7类符号进行 * 类或接口的解析 * 字段解析 * 类方法解析 * 接口方法解析 * 方法类型解析 * 方法句柄解析 * 调用点限定符解析 5.**初始化**: 初始化是类加载过程的最后一步,在初始化阶段才是真正执行类中的java程序代码,在准备阶段变量已经赋值了初始值,初始化阶段再按照程序员的意愿去进行赋值其他 [11172442-c07c2c872a67bcfd.png]: /images/20210825/6a110d16348b4204aba216440fe41edc.png
相关 类加载机制 1.类加载流程 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG 骑猪看日落/ 2022年12月26日 10:26/ 0 赞/ 191 阅读
相关 类加载机制 一、类加载的几个阶段 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9i 末蓝、/ 2022年12月25日 15:54/ 0 赞/ 212 阅读
相关 类加载机制 点击上方“晏霖”,选择“置顶或者星标” 曾经有人关注了我 后来他有了女朋友 1.6类加载机制 1.6.1概述 学习本章前我们要对类文件结构有一个简单的认识,而学 迷南。/ 2022年12月22日 11:16/ 0 赞/ 206 阅读
相关 类加载机制 我们都知道java中比较常提到的一个概念就是类。但是在java机制中,类是怎么运行的呢?下面来看看L: 类被加载到虚拟机到使用,最后被卸载,经历了一下几个步骤: ╰+哭是因爲堅強的太久メ/ 2022年07月13日 09:10/ 0 赞/ 277 阅读
相关 类加载机制 类加载器层次是怎么样的 1. JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 `<J - 日理万妓/ 2022年07月12日 07:15/ 0 赞/ 299 阅读
相关 类加载机制 类加载器层次是怎么样的 1. JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 `<J Bertha 。/ 2022年07月12日 07:15/ 0 赞/ 244 阅读
相关 类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、 转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 待我称王封你为后i/ 2022年07月12日 05:59/ 0 赞/ 285 阅读
相关 类加载机制 任何一个类在使用前都要经历过完整的加载,连接和初始化三个类加载步骤。经历过这三个步骤之后类型就能随时随地被使用了。从一个类型被加载进JVM算起,直至最终被卸载出内存为止,它的整 左手的ㄟ右手/ 2022年06月10日 06:47/ 0 赞/ 331 阅读
相关 类加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个`java.lang.Class`对 骑猪看日落/ 2022年05月27日 05:08/ 0 赞/ 324 阅读
相关 类加载机制 java类加载的全过程包含5个步骤: 加载,验证,准备,解析,初始化 而验证,准备,解析又可以合并为一个阶段:连接 怼烎@/ 2021年10月01日 08:26/ 0 赞/ 455 阅读
还没有评论,来说两句吧...