應用,一定要應用

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            25 Posts :: 0 Stories :: 118 Comments :: 0 Trackbacks

          2004-10-22

          第四章:class文件格式
          java.io.DataInput和java.io.Output輸入輸出的都是以高端字節序輸出字節。
          與C結構的域不同,class文件中連續的項順序存儲,不進行填充或者對齊。
          4.1classFile
          一個class文件包含一個單獨的classFile結構,包含:
          一個四字節的幻數表明class類型。具有值0XCAFEBABE;
          access_flag用于表明是類還是接口,是abstract,final還是其他
          另外分別有表存儲:常量、屬性、方法、域。
          目前屬性只有sourceFile屬性。
          4。2完全限定類名稱的內部形式
          出現在classFile文件結構中的類都以完全限定類名稱的方式出現,并且不是類似于java.lang.xxx,而是變為java/lang/xxx
          4.3描述符
          域類型有:根類型,對象類型,數組類型
          根類型有:B,C,D,F,I,J,S,Z
          對象類型:L
          數組類型:[
          多維數組double[][][] d的表示方式:[[[D
          方法返回描述符
          V表示void

          object mymethod(int i,double j,Thread t)的方法描述符為:
          (IDLjava/lang/Thread;)Ljava/lang/Object;
          java的方法不管是static還是實例方法描述符都是如此,區別在于jvm運行時給實例方法隱式的傳遞當前對象的指針this

          4.4常數池
          常數池由一組類似于cp_info的結構構成
          cp_info{
          ?u1 tag;
          ?u1 info[];
          }

          4.5域
          每個域由一個變長的field_info構成
          field_info{
          ?u2 access_flags;
          ?u2 name_index;
          ?u2 descriptor_index;
          ?u2 attribute_count;
          ?attribute_info attributes[attributes_count];
          }

          4.6方法
          每個方法由變長結構method_info構成
          method_info{
          ?u2 access_flags;
          ?u2 name_index;
          ?u2 descriptor_index;
          ?u2 attribute_count;
          ?attribute_info attributes[attributes_count];
          }

          4.7屬性
          屬性用于field_info,method_info,class_file結構之中,結構一般如下:
          attribute_info{
          ?u2 attribute_name_index;
          ?u4 attribute_length;
          ?u1 info[attribute_length];
          }

          某些屬性被預定義作為class文件規范的一部分,這些屬性是:sourceFile,ConstantValue,code,exception,lineNumberTable和localVariableTable屬性。

          4。8對java虛擬機代碼的約束

          4。9class文件的檢驗

          4。10java虛擬機和class文件格式的限制

          posted on 2006-08-24 17:03 flyffa 閱讀(1291) 評論(0)  編輯  收藏 所屬分類: 讀書
          主站蜘蛛池模板: 信丰县| 江达县| 舞阳县| 保靖县| 湾仔区| 曲麻莱县| 舒兰市| 太原市| 恩平市| 诸城市| 甘孜| 明溪县| 鲁甸县| 济南市| 云南省| 高阳县| 潍坊市| 嘉义市| 吕梁市| 信阳市| 老河口市| 高阳县| 梁河县| 山阳县| 于田县| 宁强县| 丰都县| 乌鲁木齐市| 寿阳县| 彰武县| 乐清市| 三门县| 大洼县| 思南县| 德江县| 东光县| 临武县| 大石桥市| 广元市| 和静县| 台州市|