zoukankan      html  css  js  c++  java
  • Class文件结构

    本文参考《深入理解虚拟机》一书

    平台无关性和语言无关性

    虚拟机的存在帮助我们实现了平台无关性和语言无关性,平台无关性我们都知道,在多种操作系统中,我们可以运行相同的程序。语言无关性是因为多种编程语言经过编译后形成统一的能够被虚拟机识别的Class文件。

    Class文件的结构

    任何一个Class文件都存储这对象的类或者接口的信息,class文件本质上就是一张表

    class文件的格式是固定的,根据上面这张表可以分析出class文件结构是什么样子的,class文件以8字节为单位进行存储。

    1.魔数和版本号

    前四个字节是魔数,用来作为标识这是一个class文件,后面的四个字节分别是版本号和副版本号。

    2.常量池

    紧接着版本号的是常量池入口,存储着常量池中的数据。

    3.访问标志

    判断访问的是类还是接口,是什么类型等。

    4.类索引、父索引、和接口索引

    判断类的继承关系

    5.字段表集合

    描述接口或者类中声名的变量,仅包括类级变量和实例级变量。

    6.方法表集合

    记录对方法的描述

    7.属性表集合

    字段表、class文件、方法表都有自己的属性表集合。用来描述某些场景专有的信息。

  • 相关阅读:
    Oracle的hash分区
    Oracle的list分区
    range联合分区
    Oracle分区表range单分区
    彻底解决Oracle unable to create INITIAL extent for segment in tablespace xx
    Oracle表空间管理,数据迁移,
    plsqldevelop安装教程
    count(*)与count列谁快谁慢
    阿里云服务器Centos6.9安装oracle11g单实例数据库
    字符转换二进制码
  • 原文地址:https://www.cnblogs.com/yanqingguo/p/9746660.html
Copyright © 2011-2022 走看看