作者:凯锐斯_372 | 来源:互联网 | 2023-09-10 11:30
常量池什么?放置常量的的池,只是这个池是数组cp_info的结构体为:tag和info,tag标志它是什么类型的常量,info为它的内容cp_info结构体分为两类
常量池什么?
放置常量的的池,只是这个池是数组
cp_info的结构体为:tag 和info,tag标志它是什么类型的常量,info为它的内容
cp_info结构体分为两类:字面量和引用
根据tag不同有:引用:指向字面量的地址Constant_Methodref_info,Constant_Fieldref_info,Constant_Interfaceref_info,Constant_Class_info,Constant_String_info,Constant_NameAndType_info
字面量:存储具体类型的值,ruUTF8存储字符串
Constant_UTF8_info,Constant_Integer_info,Constant_Float_info,Constant_Long_info,Constant_Double_info,
引用的指向:
Constant_Class_info指向Constant_UTF8_info
Constant_Methodref_info,Constant_Fieldref_info,Constant_Interfaceref_info都有连个指向一个是Constant_Class_info,另一个是Constant_NameAndType_info
Constant_NameAndType_info有两个指向一个是名字的Constant_UTF8_info,另一个是类型Constant_UTF8_info
观察常量池:如图,如何查看javap -v 类名(必须先生成.class文件)
-------------------------------------------------------------------------
参考:http://blog.csdn.net/luanlouis/article/details/40148053