Java??????Class??????????
???????????? ???????[ 2013/10/21 10:01:59 ] ????????
????ClassFile?????16????????????????械?????????????????锟�?
????(1) magic
???????Class??????4??????????????????magic number??: 0xCAFEBABE????????????????????????????Java Class??????Java Class??????????????????????0xCAFEBABE??????????????Java Class????????????????娣禞??????Java?????“Oak”?????????????????????????????Java????????????????????????????????J
????(2) minor_version??major_version
????Class?????????4??????????巍????姹�????????懈??????姹�??????写?姹�???Java?????????????Class????????Class?????姹�???????Java?????????????????效??围??Java??????????????Class?????????J2SE5.0?姹�????????????????J2SE6.0?姹�????????????????Class?????
????(3) constant_pool_count
?????姹�??????????constant_pool_count????????????????????????????????????Class????谐??????斜???????????????????????????????0??constant_pool??????????????????Class?????constant_pool?斜??校?????????????Java??????????????????????????斜????????constant_pool_count-1?????????????????????????1??constant_pool_count-1??
??????????????屑????????????????锟�?????????constant_pool?????????斜????constant_pool[ ]???????????????????斜??械?????????????(???)????些?????????????????????????cp_type???????
????cp_type
??????????? ????
????CONSTANT_Class 7
????CONSTANT_Fieldref 9
????CONSTANT_Methodref 10
????CONSTANT_InterfaceMethodref 11
????CONSTANT_String 8
????CONSTANT_Integer 3
????CONSTANT_Float 4
????CONSTANT_Long 5
????CONSTANT_Double 6
????CONSTANT_NameAndType 12
????CONSTANT_Utf8 1
????(4) constant_pool[ ]
????constant_pool_count????????constant_pool[ ]???????????斜?????写娲�???ClassFile???????????????????????????????????????final????????????????????????Java Class????校?????????????????cp_info??????????????????斜?????constant_pool_count-1???????????????cp_info????????constant_pool[ ]???椤�?????constant_pool_count-1??constant_pool??????????????????????????????????????????????????????????????
????cp_info
????cp_info???tag?????????????byte???????????????cp_info?????????????????tag?????????
???????????????cp_info????????????????Class????校???????????芯?????????CONSTANT_Xxxx_info??constant_pool??????????????cp_info???tag?????????????????????????cp_info?????info[]???????????????纾珻ONSTANT_Class_info???info[]???“u2 name_index”????CONSTANT_Utf8_info???info[]???“u2 length; u1 bytes[length];”?????????????cp_info?????????????小?????????????????????????小????????????????斜??械????????????????????????????????斜???小?????????Class????校????????斜???????????????????
??????cp_info?????cp_type????????????????cp_info????tag(???)?????1????????cp_info?????CONSTANT_Utf8_info???????cp_info????tag?????3???????cp_info?????CONSTANT_Integer_info???????????????????些????????????JVM Spec??(2nded)???????????Inside JVM??(2nded)????????
????(5) access_flags
???????????????????????access_flags??access_flags?????????Java??????些??????????????纾�?????????????卸????????????????????????????????????????校????????些???畏???????????????????????????????access_flags??????Java???????????????????????????(mask???????????????access_flags????????蟹?????????????????未????????位??Class????卸????????0?????纾�??access_flags?????0x0001???????Java??????????????ACC_PUBLIC????access_flags?????0x0011???????Java??????????????ACC_PUBLIC??ACC_FINAL?????????????????位?????????0x0011?????????????)??
???????Java?????????access_flags????????卤??????
????access_flags
??????????? ? ????
????ACC_PUBLIC 0x0001 ?????public?????????????????
????ACC_FINAL 0x0010 ?????final??????????????
????ACC_SUPER 0x0020 ??invokespecial????????????
????ACC_INTERFACE 0x0200 ????????????????????????
????ACC_ABSTRACT 0x0400 ?????abstract????????????
?????????????????????????Java?????????????斜???械??????????????????械???????薪????????????????????JVM Spec??(2nded)??
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11