????????卸???
????Java???????.class????????????????Java????????????????Java????????????????魏?JVM???????械???????????JVM????????????????????????绱�???????
??????????????????????????????????????????????????JVM?????????????????????????????????????????????????????纾�????????????JVM??
?????????????????
????Java?????????JVM??????????????Java??????????小?????????????????????????校????????magic?????姹�???version???????????constant pool????????????????access flags?????????????this class????????????super class?????????????interfaces???????????fields?????????斜?????methods????????????attributes????
????????????????械????????????????斜浠�?????????????????????????????????????纾�?????????????????????????????????????????????????卸???????????????????校???些?????????小???????????????????????????????????????JVM???????????????????????????????JVM?????????小?????????????????????????
??????????校?????????????????????锌?????????????卸???????byte????????????????????小????????绱�??
?????????JVM????????????????????????????????????????????????????????????????????????????????纾�???JVM?????????????8??????????????姹�??????????????9???????????????????????????????妾�??????????????????????????????????????JVM????????????????????????????????????????????JVM???????????2??????????????????
???????????Magic????姹�???Version??
????????????????4????????0xCAFEBABE????????????????Java????????????????????????????????????????????????????????????????????????????????????????????????????????????????(??)?????????械??????????????????械?????????谩??????Java?????????????Patrick Naughton????????“Java”??????Java????????????????????????????????????????????????????????????????????????????0xCAFEBABE????????Peet’s Coffee????????????????未??Java????????????????????????
?????????????????4???????????姹�???major version????小?姹�???minor version??????些????????????????????????????????JVM??????????????????????????JVM?????????????????姹�??????????????姹�??????????
???????????Constant Pool??
?????????????????斜???????????????????????????????????????????????????????literal strings????final?????????final variable values?????????????????????????????????????????????????method names and signatures??????????????????????????return type???????????????argument types????伞?
???????????????????????????????椤�???????????????械????????????????????校??????????????????????位????????????????谩???????????????????1?????????2???????????????????????????写??????????妫�?????????????????JVM????????????????????
???????????????????????????????????????tag??????????JVM????????????????????????????????????????????纾�????????????????????????JVM???????????2???????????????????????“????”????????????????
???????????渭??????????????constant_pool[n]???????????????n???????????????????????????????????械?????????????????些?????胁?????小?????????????????????????1??
????????????????Access Flags??
??????????????2????????????????????????????????????????????????????????public???????????abstract????????????????????final???
?????????????This class??
??????????2??????????????????????????????????????????????????constant_pool[this_class]??????????????????????tag??????????????????name index???????????CONSTANT_Class??????????????邪????????????????constant_pool[name_index]?????????????????????????????
????????????????????????????????????????????????????????????????????JVM????constant_pool[this_class]???????????????????????????CONSTANT_Class??????JVM???CONSTANT_Class?????????tag??????????????????????????name index????????????????????????????constant_pool[name_index]?????????????????????????