《Java虚拟机原理图解》 1.2、class文件里的常量池

[最新更新:2014/11/11] 

    了解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

因为篇幅较长。该章节被分为三个部分,读者能够通过点击下列的连接查看:

第一部分:    一. 什么是常量池, 为什么使用常量池(尚未完毕,敬请期待......

第二部分:    二. 常量池具体解释(上)

第三部分:   三. 常量池具体解释(下)已完毕




作者的话

    本文是《Java虚拟机原理图解》系列的当中一篇。假设您有兴趣。请关注该系列的其它文章~

   认为本文不错,顺手点个赞哦~~您的鼓舞,是我继续分享知识的强大动力!

 

-----------------------------------------------------------------------------------------------------------------------------------------

本文源自  http://blog.csdn.net/luanlouis/,如需转载。请注明出处,谢谢!



原文地址:https://www.cnblogs.com/zfyouxi/p/5358521.html