程序员从宏观、微观角度浅析JVM虚拟机!
发布时间:2019-03-19 23:52:34 所属栏目:空间 来源:架构月亮姨
导读:1.问题 JAVA文本文件如何被翻译成CLASS二进制文件? 如何理解CLASS文件的组成结构? 虚拟机如何加载使用类文件的生命周期? 虚拟机系列诊断工具如何使用? 虚拟机内存淘汰机制? 虚拟机指令集架构? 2.关键词 编译,魔数,常量池,字面量,数据表,堆栈,方法区
我们知道class本质是一些表的集合,同样常量池也不例外,只不过存放在常量池位置的表有特定的类型,共有11种类型,如下表(图片引用《深入理解Java虚拟机 JVM高级特性与最佳实践 》): 每个表的表结构说明如下: 这11种类型的表第一个字段统一为标志字段tag,占用u1一个字节,用于表示该表存放的数据类型。 首先进入常量池开始的两个字节(u2)表示的是常量池的长度,也就是表的个数。 我们可以看到例子中常量池个数为0x0017,转换为十进制为23,由于第0个表为保留索引,表示没引用到任何字符串,所以实际表的索引是从1开始计算,也就是1~23共22个表。 (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |