摘要: 如果你对 Class 文件还熟悉的话,你应该知道 Class 文是一组以 8 位字节为单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件之中。也就是说,我们可以像读普通二进制文件一样读取 Class 文件,只不过需要遵循一定的规范(Java 虚拟机规范)。于是便有了用 Java 阅读全文
posted @ 2022-06-05 23:52 Tailife 阅读(136) 评论(0) 推荐(0)
摘要: 前言 Class 文件是一组以 8 位字节为单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件之中。Class 文件中存储数据有两种数据类型:无符号数和表 无符号数:Class 文件中基本的数据结构,以 u1、u2、u4、u8 来分别代表 1 个字节、2 个字节、4 个字节和 8 阅读全文
posted @ 2022-06-05 23:51 Tailife 阅读(206) 评论(0) 推荐(0)
摘要: 注:本文是类加载器总结,内容基本来自《深入理解Java虚拟机(第2版)》 上篇说过,类加载的过程分为 5 个阶段:加载、验证、准备、解析和初始化。 加载 “加载”是“类加载”过程的第一个阶段,在加载阶段,虚拟机主要做 3 件事情: 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代 阅读全文
posted @ 2022-06-05 23:48 Tailife 阅读(329) 评论(0) 推荐(0)
摘要: 生命周期 类从被加载到虚拟机内存中开始,到卸载处内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading) 7 个阶段。 阅读全文
posted @ 2022-06-05 23:45 Tailife 阅读(111) 评论(0) 推荐(0)
摘要: 7. 虚拟机类加载机制 7.1 概述 在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化? 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可 阅读全文
posted @ 2022-06-05 21:13 Tailife 阅读(65) 评论(0) 推荐(0)