瞭解JVM虛擬機原理 是每一個Java程序員修煉的必經之路。但是由於JVM虛擬機中有很多的東西講述的比較寬泛,在當前接觸到的關於JVM虛擬機原理的教程或者博客中,絕大部分都是充斥的文字性的描述,很難給人以形象化的認知,看完之後感覺還是稀裏糊塗的。感於以上的種種,我打算把我在學習JVM虛擬機的過程中學到的東西,結合自己的理解,總結成《Java虛擬機原理圖解》 這個系列,以圖解的形式,將抽象的JVM虛擬機的知識具體化,希望能夠對想了解Java虛擬機原理的的Java程序員 提供點幫助。
上一章節《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
由於篇幅較長,該章節被分爲三個部分,讀者可以通過點擊下列的連接查看:
第一部分: 一. 什麼是常量池, 爲什麼使用常量池(尚未完成,敬請期待......)
第三部分: 三. 常量池詳解(下)(已完成)
-----------------------------------------------------------------------------------------------------------------------------------------
本文源自 http://blog.csdn.net/luanlouis/,如需轉載,請註明出處,謝謝!