[最新更新: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/,如需转载。请注明出处,谢谢!

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

  1. 《Java虚拟机原理图解》1.4 class文件里的字段表集合--field字段在class文件里是如何组织的

    0.前言 了解JVM虚拟机原理是每个Java程序猿修炼的必经之路.可是因为JVM虚拟机中有非常多的东西讲述的比較宽泛.在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描写 ...

  2. 《Java虚拟机原理图解》 1.2.2、Class文件里的常量池具体解释(上)

    [last updated:2014/11/27] NO1.常量池在class文件的什么位置? 我的上一篇文章<Java虚拟机原理图解> 1.class文件基本组织结构中已经提到了clas ...

  3. 《Java虚拟机原理图解》1.3、class文件里的訪问标志、类索引、父类索引、接口索引集合

    讲完了class文件里的常量池,我们就相当于克服了class文件里最麻烦的模块了.如今,我们来看一下class文件里紧接着常量池后面的几个东西:訪问标志.类索引.父类索引.接口索引集合. 1. 訪问标 ...

  4. 《Java虚拟机原理图解》1.5、 class文件中的方法表集合--method方法在class文件中是怎样组织的

    0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描 ...

  5. 《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的

    0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述 ...

  6. 《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合

    讲完了class文件中的常量池,我们就相当于克服了class文件中最麻烦的模块了.现在,我们来看一下class文件中紧接着常量池后面的几个东西:访问标志.类索引.父类索引.接口索引集合. 1. 访问标 ...

  7. 《Java虚拟机原理图解》 1.2.2、Class文件中的常量池详解(上)

    我的上一篇文章<Java虚拟机原理图解> 1.class文件基本组织结构中已经提到了class的文件结构,在class文件中的魔数.副版本号.主版本之后,紧接着就是常量池的数据区域了,如下 ...

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

    了解JVM虚拟机原理 是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给 ...

  9. 《Java虚拟机原理图解》 1.2.3、Class文件里的常量池具体解释(下)

    NO9.类中引用到的field字段在常量池中是如何描写叙述的?(CONSTANT_Fieldref_info, CONSTANT_Name_Type_info) 一般而言.我们在定义类的过程中会定义一 ...

随机推荐

  1. Python异常记录

    1.常用异常名 AttributeError 调用不存在的方法引发的异常. EOFError 遇到文件末尾引发的异常. ImportError 导入模块出错引发的异常. IndexError 列表越界 ...

  2. java 抽象类和接口

    接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念 ...

  3. JQuery发送Put、Delete请求 - 摘自网络

    DELETE: $.ajax({ url: '/script.cgi', type: 'DELETE', success: function(result) { // Do something wit ...

  4. js运动 分享到

    <!doctype html> <html> <head> <meta charset = "utf-8"> <title&g ...

  5. Jquery 等待ajax返回数据loading控件ShowLoading组件

    1.意义 开发项目中,前台的页面要发请求到服务器,服务器响应请求返回数据到前台,这段时间,有可能因为返回的数据量较大导致前台页面出现短暂性的等待,此时如果用户因不知情而乱点击有可能造成逻辑混乱,所以此 ...

  6. MYSQL数据库重点:流程控制语句

    1.BEGIN ... END复合语句:包含多个语句.statement_list 代表一个或多个语句的列表.statement_list之内每个语句都必须用分号(:)来结尾. [begin_labe ...

  7. ESB服务号列表

    用于以下两个网址: -浙商ESB调用规范- xml格式 -浙商ESB调用规范- json格式   ESB服务号<SERVICE_NO>{serviceNo} 接口中文意思 42000000 ...

  8. 1001.A+B Format (20)(思路,bug发现及其修改,提交记录)

    https://github.com/031502316a/object-oriented/tree/master/1001 ---恢复内容开始--- 1.解题思路 一开始见到题目时,感觉难的就是输出 ...

  9. newlsip 检查磁盘分区使用情况

    主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存. 参考代码: #!/usr/bin/newlisp (set 'cur-path "/o ...

  10. linux 下查看文件个数及大小

    ls -l |grep "^-"|wc -l   或      find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的. ls - ...