`
yefeng_laixi
  • 浏览: 15762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

深入java虚拟机读书笔记——第六章 class文件

阅读更多

第六章 Javaclass文件

1. class文件表:

  A.magic(魔数)——4个字节

  B.minor-versionmajor-version(主次版本号)——4个字节

  C.constant_pool_count constant_pool 常量池:储存了诸如文字字符串,final变量值,类名和方法名的常量,constant_pool_count计数在列表constant_pool之前,它的数值为constant_pool中数量+1.

   在动态连接的java程序中,常量池还可以容纳:

l  类和接口的全限定名

l  字段的名称和描述符

l  方法的名称和描述符

字段是类或接口的实例变量或者类变量。字段的描述符是一个指示字段的类型的字符串,方法的描述符也是一个字符串,该字符串指示方法的返回值和参数的数量、顺序和类型。

     D.access_flags:文件中定义的类和接口的几段信息。如它的修饰符,公有还是抽象,类型是final还是不是。

          E.this_class——2个字节,它是一个对常量池的索引,在this_class位置的常量池入口必须为CONSTANT_Class_info。该表有两部分组成——标签和name_index.标签部分是一个具有CONSTANT_Class值的常量,在name_index位置的常量池入口为一个包含类和接口全限定名的CONSTANT_Utf8_info

        

         F.Super_class——2个字节:也是一个常量池的索引。这个super_class位置的常量池入口是一个指向该类超类的全限定名的CIONSTANT_Class_info入口。

G.interfaces_countinterfaces:在文件中该类直接实现或者有接口所扩展的父接口的数量,他们按照从左到右的顺序出现到一个数组中。

H.fields_countfields:文件中对该类或者接口的中所声明的字段的描述

fields_count是类变量和实例变量的字段的总数量,此中不包含父类或者父接口中的字段

J.methords_countmethord:文件中对该类或者接口的中所声明的方法的描述

K.attributes_countattributesclass文件的最后部分是属性

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics