????????ж???
????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]?????????????????????????