声明:本文摘抄自:https://blog.csdn.net/u010349169/article/details/40148053
上一章节《Java虚拟机原理图解》 1、class文件基本组织结构大致地介绍了class文件的组织结构,接下来,我们将深入每一个结构,来详细了解它们。这一章节呢,我们就来扒一扒 class文件中非常重要 的一个数据区域------常量池。它在JVM虚拟机中扮演了非常重要的地位。
本章节将从下面几个方面来介绍常量池:
一. 什么是常量池, 为什么使用常量池
二. 常量池详解(上)
NO1. 常量池在class文件的什么位置?
NO2. 常量池的里面是怎么组织的?
NO3. 常量池项 (cp_info) 的结构是怎样的?
NO4. 常量池 能够表示那些信息?
NO5. int和float数据类型的常量在常量池中是怎样表示和存储的?
( ----介绍 常量池项 CONSTANT_Integer_info, CONSTANT_Float_info)
NO6. long和 double数据类型的常量在常量池中是怎样表示和存储的?
(----介绍 常量池项 CONSTANT_Long_info, CONSTANT_Double_info)
NO7. String类型的字符串常量在常量池中是怎样表示和存储的?
( ----介绍 常量池项 CONSTANT_String_info,CONSTANT_Utf8_info)
NO8. 类文件中定义的类名和类中使用到的类在常量池中是怎样被组织和存储的?
(----介绍 常量池项 CONSTANT_Class_info)
三. 常量池详解(下)
NO9. 类中引用到的field字段在常量池中是怎样描述的?
( ----介绍 常量池项 CONSTANT_Fieldref_info, CONSTANT_Name_Type_info)
NO10. 类中引用到的method方法在常量池中是怎样被描述的?
(----介绍 常量池项 CONSTANT_Methodref_info)
NO11. 类中引用到某个接口中定义的method方法在常量池中是怎样描述的?
(----介绍 常量池项 CONSTANT_InterfaceMethodref_info)
NO12. CONSTANT_MethodType_info
NO13. CONSTANT_MethodHandle_info
NO13. CONSTANT_InvokeDynamic_info