java class文件中包含了java虛擬機(jī)所需知道的、關(guān)于類或者接口的所有信息。
class文件“基本類型”
                u1----1個(gè)字節(jié)            u2-----2個(gè)字節(jié)   u4----4個(gè)字節(jié)  u8----8個(gè)字節(jié) 
ClassFile表中各項(xiàng):
                 1)magic(魔數(shù))
                 每個(gè)java class文件的前4個(gè)字節(jié)被稱為他的魔數(shù)(magic number): 0xCAFEBABE
                 作用:可以輕松地分辯出Java class文件和非java class文件。(如果一個(gè)文件不是以0xCAFEBABE開頭,他就肯定不是Java class文件)
                 *文件格式定義者能夠自由選擇魔數(shù),前提是這個(gè)選定的魔數(shù)值沒有被廣泛應(yīng)用。
                 2)minor_version和major_version
                  class文件的下面4個(gè)字節(jié)包含了主、版本號(hào)。通常只有給定主版本號(hào)和一系列次版本號(hào)后,java虛擬機(jī)才能夠讀取class文件。
                  如果class文件的版本號(hào)超出了java虛擬機(jī)所能夠處理的有效范圍,java虛擬機(jī)將不會(huì)處理該class文件。
                  3)constant_pool.count和constant_pool
                  在class文件中,魔數(shù)和版本號(hào)后面的是常量池。常量池包含了與文件中類和接口相關(guān)的常量。常量池中存儲(chǔ)了諸如文字字符串、
                  final變量值、類名和方法名的常量。
                  在動(dòng)態(tài)連接的java程序中,常量池充當(dāng)了十分重要的角色:
                   字面常量、類和接口的全限定名、字段的名稱和描敘符、方法的名稱和描敘符
                  4)access_flegs
                  緊接常量池后的兩個(gè)字節(jié)稱為access_flags,他展示了文件中定義的類或接口的幾端信息。
                  例如,訪問標(biāo)志指明文件中定義的是類還是接口;訪問標(biāo)志還定義了在類或接口的聲明中,使用了哪些修飾符;類和接口是抽象的
                  還是公共的;類的類型可以是final,而final類不可能是抽象的;接口不能是final類型
                  5)this_class
                  接下來的兩個(gè)字節(jié)為this_class項(xiàng),他是一個(gè)對常量池的索引。在this_class位置的常量池入口必須為CONSTANT_Class_info表。
                  該表由兩個(gè)部分組成----標(biāo)簽和name_index
                  標(biāo)簽部分是一個(gè)具有CONSTANT_Class值的常量
                  name_index位置的常量池入口為一個(gè)包含子類或接口全限定名的CONSTANT_Utf8_info表。
                  6)super_class
                  在class文件中緊接在this_class之后的是super_class項(xiàng),它是一個(gè)兩個(gè)字節(jié)的常量池索引。在supper_class位置的常量池
                  入口是一個(gè)指向該類超類全限定名的CONSTANT_Class_info入口。
                  因?yàn)閖ava程序中所有對象的基類都是java.lang.Object類,除了Object類之外,常量池入口super_class位置的項(xiàng)為java.lang.Object
                  7)interfaces_count和interfaces
                  緊接著super_class的是interfaces_count,此項(xiàng)的含義是:在文件中由該類直接實(shí)現(xiàn)或者由接口所擴(kuò)展的父借口的數(shù)量。
                  8)fields_count和fields
                  在class文件中,緊接在interfaces后面的是對在該類或者接口中所聲明的字段的描述
                  9)methods_count和methods
                  在class文件中,緊接著fields后面的是對在該類或者接口中所聲明的方法的描述。首先是名為methods_count的計(jì)數(shù),它是一個(gè)
                  雙字節(jié)長度的對類或者接口中聲明的所有方法的總計(jì)數(shù)。
                  10)attributes_count和attributes
                  class文件中最后的部分是屬性(attribute),他給出了在該文件中類或者接口所定義的屬性的基本信息。