榪欎釜鏄父閲忔睜錛屽垰鐪嬩功鐨勬椂鍊欐垜榪樹互涓哄父閲忔睜鏀劇殑涓瀹氭槸甯擱噺銆傞敊銆?br />甯擱噺姹犲氨鏄綾誨瀷鎵鐢ㄥ父閲忕殑涓涓湁搴忛泦鍚堬紝鍖呮嫭鐩存帴甯擱噺(String,integer,floating聽聽point甯擱噺錛夊拰瀵瑰叾浠栫被鍨嬨佸瓧孌靛拰鏂規硶鐨勭鍙峰紩鐢ㄣ?br />const #1 = Method聽#3.#12;聽//聽 java/lang/Object."<init>":()V
鍥犱負Constant pool#0鏄笉鐢ㄧ殑錛屾墍浠ュ彧鑳戒粠#1寮濮嬶紝浣嗕笉鐭ヤ負浠涔堢涓涓槸Method鑰屼笉鏄痗lass錛屾垜鐜板湪榪樹笉鏄庣櫧銆?/font>
const #2 = class聽#13;聽//聽 Act
CONSTANT_Class鏄涓涓被鎴栨帴鍙g殑絎﹀彿寮曠敤銆傝繖涓槸鎸囧悜#13
const #3 = class聽#14;聽//聽 java/lang/Object
const #4 = Asciz聽<init>;
聽榪欎釜Asciz搴旇琛ㄧず鏄疌ONSTANT_Utf8鍚э紝鍥犱負C聽ONSTANT_Utf8鍙互鏄瓨鍌ㄥ洓縐嶅熀鏈俊鎭被鍨嬶細鏂囧瓧瀛楃涓層佽瀹氫箟鐨勭被鍜屾帴鍙f弿榪般佸鍏朵粬綾繪垨鎺ュ彛鐨勭鍙峰紩鐢ㄤ互鍙婂睘鎬х浉鍏崇殑瀛楃涓層?br /><init>鏄疄渚嬬殑鍒濆鍖栨柟娉曪紝鏄疄渚嬭皟鐢ㄦ柟娉曞墠蹇呴』瑕?lt;init>鐨勶紝
<clinit>鏄被鐨勫垵濮嬪寲鏂規硶銆?br />const #5 = Asciz聽()V;
姝?lt;init>鐨勬弿榪扮錛?)V琛ㄧず<init>娌℃湁甯﹀弬鏁幫紝榪斿洖鐨勬槸void鍨嬬殑銆?br />涔︿笂浠嬬粛錛?br />()I聽 int getSize()聽聽
() Ljava/lang/String聽聽聽聽聽 String toString()
const #6 = Asciz聽Code;
Code鍦ㄦ墍鏈変笉鏄娊璞℃垨鑰呮湰鍦版柟娉曠殑method_info淇℃伅涓?閮藉瓨鍦ㄤ竴涓狢ode_attribute琛ㄣ?br />浣嗘槸鎴戣瘯涓涓嬪湪鎶借薄鐨勬柟娉曚腑鍚屾牱涔熸湁code鐨勫晩錛屼笉鎳備腑銆?br />const #7 = Asciz聽LineNumberTable;
LineNumberTable灞炴у緩绔嬩簡鏂規硶瀛楄妭鐮佹祦鍋忕Щ閲忓拰婧愪唬鐮佽鍙蜂箣闂寸殑鏄犲皠鍏崇郴銆傚叧浜庤繖涓鐐癸紝鎴戝湪涓嬮潰璇︾粏璋堝埌銆?br />const #8 = Asciz聽doMathForever;
#8 瀛楁鍚嶅拰鏂規硶鍚嶄互綆鍗曞悕縐板嚭鐜板湪甯擱噺姹犵殑鍏ュ彛涓紝瀛樼殑鏃跺欏瓨綆鍗曞悕瀛楋紝璋冪敤鐨勬椂鍊欒鍔犅犱笂鍏ㄩ檺瀹氬悕
const #9 = Asciz聽(I)V;
doMathForover鐨勬弿榪扮錛屽弬鏁版槸int綾誨瀷錛岃繑鍥炲兼槸void綾誨瀷
const #10 = Asciz聽SourceFile;
const #11 = Asciz聽Act.java;
const #12 = NameAndType聽#4:#5;//聽 "<init>":()V
NameAndType鎸囧悜瀛楁鎴栬呮柟娉曠殑絎﹀彿寮曠敤鐨勪竴閮ㄥ垎銆備負浠涔堟病鏈夋寚鍚?8,#9鍛紵涓嶆噦涓?br />const #13 = Asciz聽Act;
const #14 = Asciz聽java/lang/Object;
#13,#14 CONSTANT_Utf8_info聽琛ㄧ殑鍏ュ彛錛屽綰充簡聽綾?鎺ュ彛鍏ㄩ檺瀹氬悕絳変俊鎭傜敤鈥?鈥濅唬鏇庫?鈥濄傚湪class鏂囦歡鐨則his_class瀛楁鏄甯擱噺姹犵殑涓涓紩鐢紝鎸囧悜浜嗗父閲忔睜涓瑿ONSTANT_ClASS_info琛紝璇ヨ〃鐢變袱欏圭粍鎴愶紝鍗蟲爣絳懼拰name_index銆傚湪榪欎釜渚嬪瓙閲岋紝this_class鐨勫間負2錛屼篃灝辨槸甯擱噺姹犻噷鐨勭浜岄」錛岃繖欏規爣絳炬槸class錛宯ame_index鏄?3錛屽嵆鎸囧悜甯擱噺姹犵殑絎?3欏廣傜13欏歸噷灝辨湁褰撳墠綾葷殑鍏ㄩ檺瀹氬悕銆?/font>
{
Act();
聽 Code:
聽聽 Stack=1, Locals=1, Args_size=1
闇瑕佺殑鏍堜負1涓紝鍙槸this鐨勫瓨鍙?鏈湴鍙橀噺涓?涓紝涔熸槸this,鏂規硶鐨勫弬鏁版槸1涓紝涔熸槸this浼犲叆銆?br />聽聽 0:聽aload_0
浠庡眬閮ㄥ彉閲?涓杞藉紩鐢ㄧ被鍨嬨?/font>
聽聽 1:聽invokespecial聽#1; //Method java/lang/Object."<init>":()V
璋冪敤Object鐨?lt;init>鏂規硶錛屽洜涓烘瘡涓被閮芥槸緇ф壙Object錛屾墍浠ュ疄渚嬫椂閮借璋冪敤Object鐨?lt;init>鏂規硶銆?/font>
聽聽 4:聽return
聽 LineNumberTable:
聽聽 line 1: 0
public static void doMathForever(int);
聽 Code:
聽聽 Stack=2, Locals=3, Args_size=1
聽聽 0:聽iconst_0聽
灝唅 鍘嬪叆鏍?br />聽聽 1:聽istore_1聽
鏀緄
聽聽 2:聽iconst_1
鍚屼笂
聽聽 3:聽istore_2
聽聽 4:聽iinc聽1, 1聽 i++
聽 7聽 聽iload_1 浠庡眬閮ㄥ彉閲?涓杞絠nt綾誨瀷鍊箋?/font>
聽聽 8:聽iconst_2
聽聽 9:聽imul
聽聽 10:聽istore_1
聽聽 11:聽goto聽4
聽 LineNumberTable:
聽聽 line 3: 0聽 婧愪唬鐮佺3琛屽搴擟ode涓殑0鍋忕Щ閲忋?/font>
聽聽 line 4: 2
聽聽 line 6: 4
聽聽 line 7: 7
聽聽 line 8: 11
}

]]>