zoukankan      html  css  js  c++  java
  • JVM --java 字节码的结构解析

    Java字节码文件的主体结构分为一下几个部分:Class文件头部、常量池区域、当前类的描述信息、字段列表、方法列表、属性列表

    Class文件头部

      任何的class文件的前四个字节的内容就是CA FE BA BE 。Java是一种咖啡,故称之为coffee baby。这四个字节作为该文件的校验码。--》4

      接下来是JDK的版本信息,两个字节代表JDK的最低版本,两个字节JDK的最高版本。--》4

    常量池区域

      常量池中每一项包括两部分:一个字节标志他的类型,然后是内容,内容的宽度是不一样的。而这个内容先由两个字节记录他真正内容在另一个常量池中的位置。称之为常量池入口。

    类的描述信息

      两个字节标志类的访问标志。public private.....。两个字节标志类名在常量池中的位置。两个字节标志其父类在常量池中的位置。然后在用两个字节标志接口的数量。接下来列出了各个接口的常量池入口,其中每一项占两个字节。

    字段列表

      两个字节字段的数量。接下来就是各个属性,这些属性都有相同的内部结构(属性名称,属性类型,附加属性个数,附加属性)。

    方法列表

      两个字节方法数量。同样每个方法相同的描述内部结构。

      接下来是方法体的描述,属性的个数、长度、栈大小、局部变量、代码列表(描述真正代码段的信息)。

      其中代码列表有自己的内部结构:栈、局部变量、代码长度、Exception列表

      

  • 相关阅读:
    PAT 1007 Maximum Subsequence Sum 最大连续子序列和
    数据库系统原理课程设计——图书借阅管理系统
    计算机组成原理——数据的表示与运用
    win7系统下安装Ubuntu18.04组成双系统
    C++中set用法详解
    C++ getline函数用法详解
    数据库——关系演算
    计算机组成原理——计算机系统概述考研题
    PAT 1002 A+B for Polynomials(map模拟)
    PAT 1001 A+B Format
  • 原文地址:https://www.cnblogs.com/plxx/p/4337527.html
Copyright © 2011-2022 走看看