一侮邀、Java字節(jié)碼指令大全
1.1.常量入棧指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x01 | aconst_null | null值入棧。 | |
0x02 | iconst_m1 | -1(int)值入棧芜繁。 | |
0x03 | iconst_0 | 0(int)值入棧绅你。 | |
0x04 | iconst_1 | 1(int)值入棧惨险。 | |
0x05 | iconst_2 | 2(int)值入棧。 | |
0x06 | iconst_3 | 3(int)值入棧。 | |
0x07 | iconst_4 | 4(int)值入棧赁遗。 | |
0x08 | iconst_5 | 5(int)值入棧署辉。 | |
0x09 | lconst_0 | 0(long)值入棧。 | |
0x0a | lconst_1 | 1(long)值入棧岩四。 | |
0x0b | fconst_0 | 0(float)值入棧哭尝。 | |
0x0c | fconst_1 | 1(float)值入棧。 | |
0x0d | fconst_2 | 2(float)值入棧剖煌。 | |
0x0e | dconst_0 | 0(double)值入棧材鹦。 | |
0x0f | dconst_1 | 1(double)值入棧。 | |
0x10 | bipush | valuebyte | valuebyte值帶符號(hào)擴(kuò)展成int值入棧耕姊。 |
0x11 | sipush | valuebyte1valuebyte2 | (valuebyte1 << 8) | valuebyte2 值帶符號(hào)擴(kuò)展成int值入棧桶唐。 |
0x12 | ldc | indexbyte1 | 常量池中的常量值(int, float, string reference, object reference)入棧。 |
0x13 | ldc_w | indexbyte1indexbyte2 | 常量池中常量(int, float, string reference, object reference)入棧茉兰。 |
0x14 | ldc2_w | indexbyte1indexbyte2 | 常量池中常量(long, double)入棧尤泽。 |
1.2.局部變量值轉(zhuǎn)載到棧中指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x19 | (wide)aload | indexbyte | 從局部變量indexbyte中裝載引用類型值入棧。 |
0x2a | aload_0 | 從局部變量0中裝載引用類型值入棧规脸。 | |
0x2b | aload_1 | 從局部變量1中裝載引用類型值入棧坯约。 | |
0x2c | aload_2 | 從局部變量2中裝載引用類型值入棧。 | |
0x2d | aload_3 | 從局部變量3中裝載引用類型值入棧莫鸭。 | |
0x15 | (wide)iload | indexbyte | 從局部變量indexbyte中裝載int類型值入棧闹丐。 |
0x1a | iload_0 | 從局部變量0中裝載int類型值入棧。 | |
0x1b | iload_1 | 從局部變量1中裝載int類型值入棧被因。 | |
0x1c | iload_2 | 從局部變量2中裝載int類型值入棧卿拴。 | |
0x1d | iload_3 | 從局部變量3中裝載int類型值入棧。 | |
0x16 | (wide)lload | indexbyte | 從局部變量indexbyte中裝載long類型值入棧梨与。 |
0x1e | lload_0 | 從局部變量0中裝載int類型值入棧堕花。 | |
0x1f | lload_1 | 從局部變量1中裝載int類型值入棧。 | |
0x20 | lload_2 | 從局部變量2中裝載int類型值入棧蛋欣。 | |
0x21 | lload_3 | 從局部變量3中裝載int類型值入棧航徙。 | |
0x17 | (wide)fload | indexbyte | 從局部變量indexbyte中裝載float類型值入棧。 |
0x22 | fload_0 | 從局部變量0中裝載float類型值入棧陷虎。 | |
0x23 | fload_1 | 從局部變量1中裝載float類型值入棧到踏。 | |
0x24 | fload_2 | 從局部變量2中裝載float類型值入棧。 | |
0x25 | fload_3 | 從局部變量3中裝載float類型值入棧尚猿。 | |
0x18 | (wide)dload | indexbyte | 從局部變量indexbyte中裝載double類型值入棧窝稿。 |
0x26 | dload_0 | 從局部變量0中裝載double類型值入棧。 | |
0x27 | dload_1 | 從局部變量1中裝載double類型值入棧凿掂。 | |
0x28 | dload_2 | 從局部變量2中裝載double類型值入棧伴榔。 | |
0x29 | dload_3 | 從局部變量3中裝載double類型值入棧纹蝴。 | |
0x32 | aaload | 從引用類型數(shù)組中裝載指定項(xiàng)的值。 | |
0x2e | iaload | 從int類型數(shù)組中裝載指定項(xiàng)的值踪少。 | |
0x2f | laload | 從long類型數(shù)組中裝載指定項(xiàng)的值塘安。 | |
0x30 | faload | 從float類型數(shù)組中裝載指定項(xiàng)的值。 | |
0x31 | daload | 從double類型數(shù)組中裝載指定項(xiàng)的值援奢。 | |
0x33 | baload | 從boolean類型數(shù)組或byte類型數(shù)組中裝載指定項(xiàng)的值(先轉(zhuǎn)換為int類型值兼犯,后壓棧)。 | |
0x34 | caload | 從char類型數(shù)組中裝載指定項(xiàng)的值(先轉(zhuǎn)換為int類型值集漾,后壓棧)切黔。 | |
0x35 | saload | 從short類型數(shù)組中裝載指定項(xiàng)的值(先轉(zhuǎn)換為int類型值,后壓棧)具篇。 |
1.3.將棧頂值保存到局部變量中指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x3a | (wide)astore | indexbyte | 將棧頂引用類型值保存到局部變量indexbyte中纬霞。 |
0x4b | astroe_0 | 將棧頂引用類型值保存到局部變量0中。 | |
0x4c | astore_1 | 將棧頂引用類型值保存到局部變量1中驱显。 | |
0x4d | astore_2 | 將棧頂引用類型值保存到局部變量2中诗芜。 | |
0x4e | astore_3 | 將棧頂引用類型值保存到局部變量3中。 | |
0x36 | (wide)istore | indexbyte | 將棧頂int類型值保存到局部變量indexbyte中秒紧。 |
0x3b | istore_0 | 將棧頂int類型值保存到局部變量0中绢陌。 | |
0x3c | istore_1 | 將棧頂int類型值保存到局部變量1中挨下。 | |
0x3d | istore_2 | 將棧頂int類型值保存到局部變量2中熔恢。 | |
0x3e | istore_3 | 將棧頂int類型值保存到局部變量3中。 | |
0x37 | (wide)lstore | indexbyte | 將棧頂long類型值保存到局部變量indexbyte中臭笆。 |
0x3f | lstore_0 | 將棧頂long類型值保存到局部變量0中叙淌。 | |
0x40 | lstore_1 | 將棧頂long類型值保存到局部變量1中。 | |
0x41 | lstore_2 | 將棧頂long類型值保存到局部變量2中愁铺。 | |
0x42 | lstroe_3 | 將棧頂long類型值保存到局部變量3中鹰霍。 | |
0x38 | (wide)fstore | indexbyte | 將棧頂float類型值保存到局部變量indexbyte中。 |
0x43 | fstore_0 | 將棧頂float類型值保存到局部變量0中茵乱。 | |
0x44 | fstore_1 | 將棧頂float類型值保存到局部變量1中茂洒。 | |
0x45 | fstore_2 | 將棧頂float類型值保存到局部變量2中。 | |
0x46 | fstore_3 | 將棧頂float類型值保存到局部變量3中瓶竭。 | |
0x39 | (wide)dstore | indexbyte | 將棧頂double類型值保存到局部變量indexbyte中督勺。 |
0x47 | dstore_0 | 將棧頂double類型值保存到局部變量0中。 | |
0x48 | dstore_1 | 將棧頂double類型值保存到局部變量1中斤贰。 | |
0x49 | dstore_2 | 將棧頂double類型值保存到局部變量2中智哀。 | |
0x4a | dstore_3 | 將棧頂double類型值保存到局部變量3中。 | |
0x53 | aastore | 將棧頂引用類型值保存到指定引用類型數(shù)組的指定項(xiàng)荧恍。 | |
0x4f | iastore | 將棧頂int類型值保存到指定int類型數(shù)組的指定項(xiàng)瓷叫。 | |
0x50 | lastore | 將棧頂long類型值保存到指定long類型數(shù)組的指定項(xiàng)。 | |
0x51 | fastore | 將棧頂float類型值保存到指定float類型數(shù)組的指定項(xiàng)。 | |
0x52 | dastore | 將棧頂double類型值保存到指定double類型數(shù)組的指定項(xiàng)摹菠。 | |
0x54 | bastroe | 將棧頂boolean類型值或byte類型值保存到指定boolean類型數(shù)組或byte類型數(shù)組的指定項(xiàng)盒卸。 | |
0x55 | castore | 將棧頂char類型值保存到指定char類型數(shù)組的指定項(xiàng)。 | |
0x56 | sastore | 將棧頂short類型值保存到指定short類型數(shù)組的指定項(xiàng)次氨。 |
1.4.wide指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0xc4 | wide | 使用附加字節(jié)擴(kuò)展局部變量索引(iinc指令特殊)世落。 |
1.5.通用(無(wú)類型)棧操作指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x00 | nop | 空操作。 | |
0x57 | pop | 從棧頂彈出一個(gè)字長(zhǎng)的數(shù)據(jù)糟需。 | |
0x58 | pop2 | 從棧頂彈出兩個(gè)字長(zhǎng)的數(shù)據(jù)屉佳。 | |
0x59 | dup | 復(fù)制棧頂一個(gè)字長(zhǎng)的數(shù)據(jù),將復(fù)制后的數(shù)據(jù)壓棧洲押。 | |
0x5a | dup_x1 | 復(fù)制棧頂一個(gè)字長(zhǎng)的數(shù)據(jù)武花,彈出棧頂兩個(gè)字長(zhǎng)數(shù)據(jù),先將復(fù)制后的數(shù)據(jù)壓棧杈帐,再將彈出的兩個(gè)字長(zhǎng)數(shù)據(jù)壓棧体箕。 | |
0x5b | dup_x2 | 復(fù)制棧頂一個(gè)字長(zhǎng)的數(shù)據(jù),彈出棧頂三個(gè)字長(zhǎng)的數(shù)據(jù)挑童,將復(fù)制后的數(shù)據(jù)壓棧累铅,再將彈出的三個(gè)字長(zhǎng)的數(shù)據(jù)壓棧。 | |
0x5c | dup2 | 復(fù)制棧頂兩個(gè)字長(zhǎng)的數(shù)據(jù)站叼,將復(fù)制后的兩個(gè)字長(zhǎng)的數(shù)據(jù)壓棧娃兽。 | |
0x5d | dup2_x1 | 復(fù)制棧頂兩個(gè)字長(zhǎng)的數(shù)據(jù),彈出棧頂三個(gè)字長(zhǎng)的數(shù)據(jù)尽楔,將復(fù)制后的兩個(gè)字長(zhǎng)的數(shù)據(jù)壓棧投储,再將彈出的三個(gè)字長(zhǎng)的數(shù)據(jù)壓棧。 | |
0x5e | dup2_x2 | 復(fù)制棧頂兩個(gè)字長(zhǎng)的數(shù)據(jù)阔馋,彈出棧頂四個(gè)字長(zhǎng)的數(shù)據(jù)玛荞,將復(fù)制后的兩個(gè)字長(zhǎng)的數(shù)據(jù)壓棧,再將彈出的四個(gè)字長(zhǎng)的數(shù)據(jù)壓棧呕寝。 | |
0x5f | swap | 交換棧頂兩個(gè)字長(zhǎng)的數(shù)據(jù)的位置勋眯。Java指令中沒(méi)有提供以兩個(gè)字長(zhǎng)為單位的交換指令。 |
1.7.類型轉(zhuǎn)換指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x86 | i2f | 將棧頂int類型值轉(zhuǎn)換為float類型值下梢。 | |
0x85 | i2l | 將棧頂int類型值轉(zhuǎn)換為long類型值客蹋。 | |
0x87 | i2d | 將棧頂int類型值轉(zhuǎn)換為double類型值。 | |
0x8b | f2i | 將棧頂float類型值轉(zhuǎn)換為int類型值怔球。 | |
0x8c | f2l | 將棧頂float類型值轉(zhuǎn)換為long類型值嚼酝。 | |
0x8d | f2d | 將棧頂float類型值轉(zhuǎn)換為double類型值。 | |
0x88 | l2i | 將棧頂long類型值轉(zhuǎn)換為int類型值竟坛。 | |
0x89 | l2f | 將棧頂long類型值轉(zhuǎn)換為float類型值闽巩。 | |
0x8a | l2d | 將棧頂long類型值轉(zhuǎn)換double類型值钧舌。 | |
0x8e | d2i | 將棧頂double類型值轉(zhuǎn)換為int類型值。 | |
0x90 | d2f | 將棧頂double類型值轉(zhuǎn)換為float類型值涎跨。 | |
0x8f | d2l | 將棧頂double類型值轉(zhuǎn)換為long類型值洼冻。 | |
0x91 | i2b | 將棧頂int類型值截?cái)喑蒪yte類型,后帶符號(hào)擴(kuò)展成int類型值入棧隅很。 | |
0x92 | i2c | 將棧頂int類型值截?cái)喑蒫har類型值撞牢,后帶符號(hào)擴(kuò)展成int類型值入棧。 | |
0x93 | i2s | 將棧頂int類型值截?cái)喑蓅hort類型值叔营,后帶符號(hào)擴(kuò)展成int類型值入棧屋彪。 |
1.8.整數(shù)運(yùn)算
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x60 | iadd | 將棧頂兩int類型數(shù)相加,結(jié)果入棧绒尊。 | |
0x64 | isub | 將棧頂兩int類型數(shù)相減畜挥,結(jié)果入棧。 | |
0x68 | imul | 將棧頂兩int類型數(shù)相乘婴谱,結(jié)果入棧蟹但。 | |
0x6c | idiv | 將棧頂兩int類型數(shù)相除,結(jié)果入棧谭羔。 | |
0x70 | irem | 將棧頂兩int類型數(shù)取模华糖,結(jié)果入棧。 | |
0x74 | ineg | 將棧頂int類型值取負(fù)瘟裸,結(jié)果入棧客叉。 | |
0x61 | ladd | 將棧頂兩long類型數(shù)相加,結(jié)果入棧景描。 | |
0x65 | lsub | 將棧頂兩long類型數(shù)相減十办,結(jié)果入棧。 | |
0x69 | lmul | 將棧頂兩long類型數(shù)相乘超棺,結(jié)果入棧。 | |
0x6d | ldiv | 將棧頂兩long類型數(shù)相除呵燕,結(jié)果入棧棠绘。 | |
0x71 | lrem | 將棧頂兩long類型數(shù)取模,結(jié)果入棧再扭。 | |
0x75 | lneg | 將棧頂long類型值取負(fù)氧苍,結(jié)果入棧。 | |
0x84 | (wide)iinc | indexbyteconstbyte | 將整數(shù)值constbyte加到indexbyte指定的int類型的局部變量中泛范。 |
1.9.浮點(diǎn)運(yùn)算
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x62 | fadd | 將棧頂兩float類型數(shù)相加,結(jié)果入棧絮记。 | |
0x66 | fsub | 將棧頂兩float類型數(shù)相減了赵,結(jié)果入棧襟沮。 | |
0x6a | fmul | 將棧頂兩float類型數(shù)相乘祠汇,結(jié)果入棧惫周。 | |
0x6e | fdiv | 將棧頂兩float類型數(shù)相除,結(jié)果入棧递递。 | |
0x72 | frem | 將棧頂兩float類型數(shù)取模喷橙,結(jié)果入棧。 | |
0x76 | fneg | 將棧頂float類型值取反登舞,結(jié)果入棧贰逾。 | |
0x63 | dadd | 將棧頂兩double類型數(shù)相加,結(jié)果入棧菠秒。 | |
0x67 | dsub | 將棧頂兩double類型數(shù)相減疙剑,結(jié)果入棧。 | |
0x6b | dmul | 將棧頂兩double類型數(shù)相乘践叠,結(jié)果入棧言缤。 | |
0x6f | ddiv | 將棧頂兩double類型數(shù)相除,結(jié)果入棧禁灼。 | |
0x73 | drem | 將棧頂兩double類型數(shù)取模管挟,結(jié)果入棧。 | |
0x77 | dneg | 將棧頂double類型值取負(fù)匾二,結(jié)果入棧哮独。 |
1.10.邏輯運(yùn)算——移位運(yùn)算
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x78 | ishl | 左移int類型值。 | |
0x79 | lshl | 左移long類型值察藐。 | |
0x7a | ishr | 算術(shù)右移int類型值。 | |
0x7b | lshr | 算術(shù)右移long類型值舟扎。 | |
0x7c | iushr | 邏輯右移int類型值分飞。 | |
0x7d | lushr | 邏輯右移long類型值。 |
1.11.邏輯運(yùn)算——按位布爾運(yùn)算
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x73 | iand | 對(duì)int類型按位與運(yùn)算睹限。 | |
0x7f | land | 對(duì)long類型的按位與運(yùn)算譬猫。 | |
0x80 | ior | 對(duì)int類型的按位或運(yùn)算讯檐。 | |
0x81 | lor | 對(duì)long類型的按位或運(yùn)算。 | |
0x82 | ixor | 對(duì)int類型的按位異或運(yùn)算染服。 | |
0x83 | lxor | 對(duì)long類型的按位異或運(yùn)算别洪。 |
1.12.控制流指令——條件跳轉(zhuǎn)指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x99 | ifeq | branchbyte1branchbyte2 | 若棧頂int類型值為0則跳轉(zhuǎn)。 |
0x9a | ifne | branchbyte1branchbyte2 | 若棧頂int類型值不為0則跳轉(zhuǎn)。 |
0x9b | iflt | branchbyte1branchbyte2 | 若棧頂int類型值小于0則跳轉(zhuǎn)。 |
0x9e | ifle | branchbyte1branchbyte2 | 若棧頂int類型值小于等于0則跳轉(zhuǎn)搔涝。 |
0x9d | ifgt | branchbyte1branchbyte2 | 若棧頂int類型值大于0則跳轉(zhuǎn)心剥。 |
0x9c | ifge | branchbyte1branchbyte2 | 若棧頂int類型值大于等于0則跳轉(zhuǎn)。 |
0x9f | if_icmpeq | branchbyte1branchbyte2 | 若棧頂兩int類型值相等則跳轉(zhuǎn)衙熔。 |
0xa0 | if_icmpne | branchbyte1branchbyte2 | 若棧頂兩int類型值不相等則跳轉(zhuǎn)。 |
0xa1 | if_icmplt | branchbyte1branchbyte2 | 若棧頂兩int類型值前小于后則跳轉(zhuǎn)。 |
0xa4 | if_icmple | branchbyte1branchbyte2 | 若棧頂兩int類型值前小于等于后則跳轉(zhuǎn)哪替。 |
0xa3 | if_icmpgt | branchbyte1branchbyte2 | 若棧頂兩int類型值前大于后則跳轉(zhuǎn)。 |
0xa2 | if_icmpge | branchbyte1branchbyte2 | 若棧頂兩int類型值前大于等于后則跳轉(zhuǎn)菇怀。 |
0xc6 | ifnull | branchbyte1branchbyte2 | 若棧頂引用值為null則跳轉(zhuǎn)凭舶。 |
0xc7 | ifnonnull | branchbyte1branchbyte2 | 若棧頂引用值不為null則跳轉(zhuǎn)。 |
0xa5 | if_acmpeq | branchbyte1branchbyte2 | 若棧頂兩引用類型值相等則跳轉(zhuǎn)爱沟。 |
0xa6 | if_acmpne | branchbyte1branchbyte2 | 若棧頂兩引用類型值不相等則跳轉(zhuǎn)帅霜。 |
1.13.控制流指令——比較指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0x94 | lcmp | 比較棧頂兩long類型值,前者大钥顽,1入棧义屏;相等,0入棧蜂大;后者大闽铐,-1入棧。 | |
0x95 | fcmpl | 比較棧頂兩float類型值奶浦,前者大兄墅,1入棧;相等澳叉,0入棧隙咸;后者大,-1入棧成洗;有NaN存在五督,-1入棧。 | |
0x96 | fcmpg | 比較棧頂兩float類型值瓶殃,前者大充包,1入棧;相等,0入棧基矮;后者大淆储,-1入棧;有NaN存在家浇,-1入棧本砰。 | |
0x97 | dcmpl | 比較棧頂兩double類型值,前者大钢悲,1入棧点额;相等,0入棧譬巫;后者大咖楣,-1入棧;有NaN存在芦昔,-1入棧诱贿。 | |
0x98 | dcmpg | 比較棧頂兩double類型值,前者大咕缎,1入棧珠十;相等,0入棧凭豪;后者大焙蹭,-1入棧;有NaN存在嫂伞,-1入棧孔厉。 |
1.14.控制流指令——無(wú)條件跳轉(zhuǎn)指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0xa7 | goto | branchbyte1branchbyte2 | 無(wú)條件跳轉(zhuǎn)到指定位置。 |
0xc8 | goto_w | branchbyte1branchbyte2branchbyte3branchbyte4 | 無(wú)條件跳轉(zhuǎn)到指定位置(寬索引)帖努。 |
1.15.對(duì)象操作指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0xbb | new | indexbyte1indexbyte2 | 創(chuàng)建新的對(duì)象實(shí)例撰豺。 |
0xc0 | checkcast | indexbyte1indexbyte | 類型強(qiáng)轉(zhuǎn)。 |
0xc1 | instanceof | indexbyte1indexbyte2 | 判斷類型拼余。 |
0xb4 | getfield | indexbyte1indexbyte2 | 獲取對(duì)象字段的值污桦。 |
0xb5 | putfield | indexbyte1indexbyte2 | 給對(duì)象字段賦值。 |
0xb2 | getstatic | indexbyte1indexbyte2 | 獲取靜態(tài)字段的值匙监。 |
0xb3 | putstatic | indexbyte1indexbyte2 | 給靜態(tài)字段賦值凡橱。 |
1.16.數(shù)組操作指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0xbc | newarray | atype | 創(chuàng)建type類型的數(shù)組。 |
0xbd | anewarray | indexbyte1indexbyte2 | 創(chuàng)建引用類型的數(shù)組亭姥。 |
0xbe | arraylength | 獲取一維數(shù)組的長(zhǎng)度稼钩。 | |
0xc5 | multianewarray | indexbyte1indexbyte2dimension | 創(chuàng)建dimension維度的數(shù)組。 |
1.17.方法調(diào)用指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0xb7 | invokespecial | indexbyte1indexbyte2 | 編譯時(shí)方法綁定調(diào)用方法达罗。 |
0xb6 | invokevirtual | indexbyte1indexbyte2 | 運(yùn)行時(shí)方法綁定調(diào)用方法变抽。 |
0xb8 | invokestatic | indexbyte1indexbyte2 | 調(diào)用靜態(tài)方法。 |
0xb9 | invokeinterface | indexbyte1indexbyte2count0 | 調(diào)用接口方法氮块。 |
1.18.方法返回指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
---|---|---|---|
0xac | ireturn | 返回int類型值绍载。 | |
0xad | lreturn | 返回long類型值。 | |
0xae | freturn | 返回float類型值滔蝉。 | |
0xaf | dreturn | 返回double類型值击儡。 | |
0xb0 | areturn | 返回引用類型值。 | |
0xb1 | return | void函數(shù)返回蝠引。 |
1.19.線程同步指令
指令碼 | 操作碼(助記符) | 操作數(shù) | 描述(棧指操作數(shù)棧) |
0xc2 | monitorenter | 進(jìn)入并獲得對(duì)象監(jiān)視器阳谍。 | |
0xc3 | monitorexit | 釋放并退出對(duì)象監(jiān)視器。 |