国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

什么是項目管理小小課堂seo自學(xué)網(wǎng)

什么是項目管理,小小課堂seo自學(xué)網(wǎng),深圳單位名稱和單位地址,做淘客網(wǎng)站需要營業(yè)執(zhí)照嗎目錄 一. 前言 二. 指令集 2.1. 支持的數(shù)據(jù)類型 2.2. 指令分類 三. 指令手冊 3.1. 操作數(shù)棧 3.2. 運(yùn)算與轉(zhuǎn)換 3.3. 條件轉(zhuǎn)移 3.4. 類與數(shù)組 3.5. 調(diào)度與返回加 finally 3.6. 指令手冊匯總 3.7. 示例 一. 前言 字節(jié)碼指令集的特點是數(shù)據(jù)量短小精干,便于傳…

目錄

一. 前言

二. 指令集

2.1. 支持的數(shù)據(jù)類型

2.2. 指令分類

三. 指令手冊

3.1. 操作數(shù)棧

3.2.?運(yùn)算與轉(zhuǎn)換

3.3.?條件轉(zhuǎn)移

3.4.?類與數(shù)組

3.5.?調(diào)度與返回加 finally

3.6. 指令手冊匯總

3.7. 示例


一. 前言

? ? 字節(jié)碼指令集的特點是數(shù)據(jù)量短小精干,便于傳輸,跨平臺。同時也損失一定的解釋執(zhí)行效率。

1. 由 操作碼 + 操作數(shù)組成。 JVM的指令由一個字節(jié)長度的、代表著某種特定操作含義的數(shù)字(稱為操作碼,Opcode)以及跟隨其后的零至多個代表此操作所需參數(shù)(稱為操作數(shù),Operands)而構(gòu)成。
2. 指令集的操作碼是單字節(jié)的,總數(shù)不可能超過256條。為了盡可能獲得短小精干的編譯代碼。
3. 操作數(shù)的長度不對齊,長度超過1字節(jié)的以big一endian順序存儲,即高位在前的字節(jié)序。如:兩個無符號字節(jié)存儲的值就是:(byte1<<8)|byte2。不對齊可省略很多填充和間隔符號。
4. 字節(jié)碼指令流單字節(jié)對齊,但除Iableswitch和lookupswitch兩個指令例外(4字節(jié)為界,少的補(bǔ)空)。

二. 指令集

2.1. 支持的數(shù)據(jù)類型

? ? JVM指令集中,大多數(shù)的指令都包含了其所操作的數(shù)據(jù)類型信息。數(shù)據(jù)類型相關(guān)的操作碼助記符中的首字母都跟操作的數(shù)據(jù)類型相關(guān):i代表對int類型的數(shù)據(jù)操作,l代表?long?,s代表short,b代表byte,c代表char,f代表float,d代表double,a代表reference。

? ? 指令集并非支持所有類型,byte、char、short、boolean 等類型,都用操作數(shù)的運(yùn)算類型(computational type)為int的指令來完成。byte和short類型的數(shù)據(jù)帶符號擴(kuò)展(sign-extend)為相應(yīng)的int類型數(shù)據(jù),boolean和char類型數(shù)據(jù)零位擴(kuò)展(zero-extend)為相應(yīng)的int類型數(shù)據(jù)。

2.2. 指令分類

1. 加載和存儲指令,加載存儲指令用于局部變量與操作數(shù)棧交換數(shù)據(jù)以及常量裝載到操作數(shù)棧,如push、load、store、const。按數(shù)據(jù)類型不同在指令前面加i/l/f/d/a等,操作數(shù)放指令后面,超過4直接寫下標(biāo),例:iload_3、iload 4。

2. 運(yùn)算指令,加add、減sub、乘mul、除div、求余rem、取反neg、移位sh(l左r右)、與and、或or、異或xor、自增inc、cmp比較。

3. 類型轉(zhuǎn)換指令,2(to),表示操作類型 到 目標(biāo)類型,從小字節(jié)類型轉(zhuǎn)大是寬化指令,從大字節(jié)類型轉(zhuǎn)小窄化指令。

4. 對象創(chuàng)建與訪問指令,創(chuàng)建對象new、創(chuàng)建基本類型數(shù)組newarray、創(chuàng)建引用類型數(shù)組anewarray、創(chuàng)建多維數(shù)組multianewarray。

5.?操作數(shù)棧管理指令,出棧pop、交換swap、復(fù)制棧頂并壓棧dup。

6. 控制轉(zhuǎn)移指令,條件跳轉(zhuǎn)指令:if與eq/ne/lt/le/gt/ge組合(與0比較或加cmp表示棧頂兩個操作數(shù)比較)、復(fù)合條件跳轉(zhuǎn)指令tableswitch與lookupswitch、無條件跳轉(zhuǎn)指令goto。

7. 方法調(diào)用和返回指令,調(diào)用對象的實例方法invokevirtual、調(diào)用接口方法invokeinterface、調(diào)用特殊實例方法invokespecial(如初始化方法)、調(diào)用類靜態(tài)方法invokestatic、調(diào)用動態(tài)鏈接方法invokedynamic。返回指令return(帶類型)、(以及SE6之前的jsr、ret)。

8.?異常處理指令,athrow。

9. 同步指令,monitorenter monitorexit。

三. 指令手冊

3.1. 操作數(shù)棧

過程符號
變量到操作數(shù)棧iload, iload_, lload, lload_, fload, fload_, dload, dload_, aload, aload_
操作數(shù)棧到變量istore, istore_, lstore, lstore_, fstore, fstore_, dstore, dstor_, astore, astore_
常數(shù)到操作數(shù)棧bipush, sipush, ldc, ldc_w, ldc2_w, aconst_null, iconst_ml, iconst_, lconst_, fconst_, dconst_
把數(shù)據(jù)裝載到操作數(shù)棧baload, caload, saload, iaload, laload, faload, daload, aaload
從操作數(shù)棧存存儲到數(shù)組bastore, castore, sastore, iastore, lastore, fastore, dastore, aastore
操作數(shù)棧管理pop, pop2, dup, dup2, dup_xl, dup2_xl, dup_x2, dup2_x2, swap

3.2.?運(yùn)算與轉(zhuǎn)換

過程符號
iadd, ladd, fadd, dadd
is, ls, fs, ds
imul, lmul, fmul, dmul
idiv, ldiv, fdiv, ddiv
余數(shù)irem, lrem, frem, drem
取負(fù)ineg, lneg, fneg, dneg
移位ishl, lshr, iushr, lshl, lshr, lushr
按位或ior, lor
按位與iand, land
按位異或ixor, lxor
類型轉(zhuǎn)換i2l, i2f, i2d, l2f, l2d, f2d(放寬數(shù)值轉(zhuǎn)換); i2b, i2c, i2s, l2i, f2i, f2l, d2i, d2l, d2f(縮窄數(shù)值轉(zhuǎn)換)

3.3.?條件轉(zhuǎn)移

過程符號
有條件轉(zhuǎn)移ifeq, iflt, ifle, ifne, ifgt, ifge, ifnull, ifnonnull, if_icmpeq, if_icmpene, if_icmplt, if_icmpgt, if_icmple, if_icmpge, if_acmpeq, if_acmpne, lcmp, fcmpl, fcmpg, dcmpl, dcmpg
復(fù)合條件轉(zhuǎn)移tableswitch, lookupswitch
無條件轉(zhuǎn)移goto, goto_w, jsr, jsr_w, ret

3.4.?類與數(shù)組

過程符號
創(chuàng)建類實便new
創(chuàng)建新數(shù)組newarray, anewarray, multianwarray
訪問類的域和類實例域getfield, putfield, getstatic, putstatic
獲取數(shù)組長度arraylength
檢相類實例或數(shù)組屬性instanceof, checkcast

3.5.?調(diào)度與返回加 finally

過程符號
調(diào)度對象的實便方法invokevirt l
調(diào)用由接口實現(xiàn)的方法invokeinterface
調(diào)用需要特殊處理的實例方法invokespecial
調(diào)用命名類中的靜態(tài)方法invokestatic
方法返回ireturn, lreturn, freturn, dreturn, areturn, return
異常athrow
finally 關(guān)鍵字的實現(xiàn)使用jsr, jsr_w, ret

3.6. 指令手冊匯總

指令碼助記符說明
0x00nop什么都不做
0x01aconst_null將 null 推送至棧頂
0x02iconst_m1將 int 型 -1 推送至棧頂
0x03iconst_0將 int 型 0 推送至棧頂
0x04iconst_1將 int 型 1 推送至棧頂
0x05iconst_2將 int 型 2 推送至棧頂
0x06iconst_3將 int 型 3 推送至棧頂
0x07iconst_4將 int 型 4 推送至棧頂
0x08iconst_5將 int 型 5 推送至棧頂
0x09lconst_0將 long 型 0 推送至棧頂
0x0alconst_1將 long 型 1 推送至棧頂
0x0bfconst_0將 float 型 0 推送至棧頂
0x0cfconst_1將 float 型 1 推送至棧頂
0x0dfconst_2將 float 型 2 推送至棧頂
0x0edconst_0將 double 型 0 推送至棧頂
0x0fdconst_1將 double 型 1 推送至棧頂
0x10bipush將單字節(jié)的常量值 (-128~127) 推送至棧頂
0x11sipush將一個短整型常量值 (-32768~32767) 推送至棧頂
0x12ldc將int,
0x13ldc_w將int,
0x14ldc2_w將 long 或 double 型常量值從常量池中推送至棧頂(寬索引)
0x15iload將指定的 int 型本地變量推送至棧頂
0x16lload將指定的 long 型本地變量推送至棧頂
0x17fload將指定的 float 型本地變量推送至棧頂
0x18dload將指定的 double 型本地變量推送至棧頂
0x19aload將指定的引用類型本地變量推送至棧頂
0x1aiload_0將第一個 int 型本地變量推送至棧頂
0x1biload_1將第二個 int 型本地變量推送至棧頂
0x1ciload_2將第三個 int 型本地變量推送至棧頂
0x1diload_3將第四個 int 型本地變量推送至棧頂
0x1elload_0將第一個 long 型本地變量推送至棧頂
0x1flload_1將第二個 long 型本地變量推送至棧頂
0x20lload_2將第三個 long 型本地變量推送至棧頂
0x21lload_3將第四個 long 型本地變量推送至棧頂
0x22fload_0將第一個 float 型本地變量推送至棧頂
0x23fload_1將第二個 float 型本地變量推送至棧頂
0x24fload_2將第三個 float 型本地變量推送至棧頂
0x25fload_3將第四個 float 型本地變量推送至棧頂
0x26dload_0將第一個 double 型本地變量推送至棧頂
0x27dload_1將第二個 double 型本地變量推送至棧頂
0x28dload_2將第三個 double 型本地變量推送至棧頂
0x29dload_3將第四個 double 型本地變量推送至棧頂
0x2aaload_0將第一個引用類型本地變量推送至棧頂
0x2baload_1將第二個引用類型本地變量推送至棧頂
0x2caload_2將第三個引用類型本地變量推送至棧頂
0x2daload_3將第四個引用類型本地變量推送至棧頂
0x2eiaload將 int 型數(shù)組指定索引的值推送至棧頂
0x2flaload將 long 型數(shù)組指定索引的值推送至棧頂
0x30faload將 float 型數(shù)組指定索引的值推送至棧頂
0x31daload將 double 型數(shù)組指定索引的值推送至棧頂
0x32aaload將引用型數(shù)組指定索引的值推送至棧頂
0x33baload將 boolean 或 byte 型數(shù)組指定索引的值推送至棧頂
0x34caload將 char 型數(shù)組指定索引的值推送至棧頂
0x35saload將 short 型數(shù)組指定索引的值推送至棧頂
0x36istore將棧頂 int 型數(shù)值存入指定本地變量
0x37lstore將棧頂 long 型數(shù)值存入指定本地變量
0x38fstore將棧頂 float 型數(shù)值存入指定本地變量
0x39dstore將棧頂 double 型數(shù)值存入指定本地變量
0x3aastore將棧頂引用型數(shù)值存入指定本地變量
0x3bistore_0將棧頂 int 型數(shù)值存入第一個本地變量
0x3cistore_1將棧頂 int 型數(shù)值存入第二個本地變量
0x3distore_2將棧頂 int 型數(shù)值存入第三個本地變量
0x3eistore_3將棧頂 int 型數(shù)值存入第四個本地變量
0x3flstore_0將棧頂 long 型數(shù)值存入第一個本地變量
0x40lstore_1將棧頂 long 型數(shù)值存入第二個本地變量
0x41lstore_2將棧頂 long 型數(shù)值存入第三個本地變量
0x42lstore_3將棧頂 long 型數(shù)值存入第四個本地變量
0x43fstore_0將棧頂 float 型數(shù)值存入第一個本地變量
0x44fstore_1將棧頂 float 型數(shù)值存入第二個本地變量
0x45fstore_2將棧頂 float 型數(shù)值存入第三個本地變量
0x46fstore_3將棧頂 float 型數(shù)值存入第四個本地變量
0x47dstore_0將棧頂 double 型數(shù)值存入第一個本地變量
0x48dstore_1將棧頂 double 型數(shù)值存入第二個本地變量
0x49dstore_2將棧頂 double 型數(shù)值存入第三個本地變量
0x4adstore_3將棧頂 double 型數(shù)值存入第四個本地變量
0x4bastore_0將棧頂引用型數(shù)值存入第一個本地變量
0x4castore_1將棧頂引用型數(shù)值存入第二個本地變量
0x4dastore_2將棧頂引用型數(shù)值存入第三個本地變量
0x4eastore_3將棧頂引用型數(shù)值存入第四個本地變量
0x4fiastore將棧頂 int 型數(shù)值存入指定數(shù)組的指定索引位置
0x50lastore將棧頂 long 型數(shù)值存入指定數(shù)組的指定索引位置
0x51fastore將棧頂 float 型數(shù)值存入指定數(shù)組的指定索引位置
0x52dastore將棧頂 double 型數(shù)值存入指定數(shù)組的指定索引位置
0x53aastore將棧頂引用型數(shù)值存入指定數(shù)組的指定索引位置
0x54bastore將棧頂 boolean 或 byte 型數(shù)值存入指定數(shù)組的指定索引位置
0x55castore將棧頂 char 型數(shù)值存入指定數(shù)組的指定索引位置
0x56sastore將棧頂 short 型數(shù)值存入指定數(shù)組的指定索引位置
0x57pop將棧頂數(shù)值彈出
0x58pop2將棧頂?shù)囊粋€(long 或 double 類型的)或兩個數(shù)值彈出(其它)
0x59dup復(fù)制棧頂數(shù)值并將復(fù)制值壓入棧頂
0x5adup_x1復(fù)制棧頂數(shù)值并將兩個復(fù)制值壓入棧頂
0x5bdup_x2復(fù)制棧頂數(shù)值并將三個(或兩個)復(fù)制值壓入棧頂
0x5cdup2復(fù)制棧頂一個(long 或 double 類型的)或兩個(其它)數(shù)值并將復(fù)制值壓入棧頂
0x5ddup2_x1<待補(bǔ)充>
0x5edup2_x2<待補(bǔ)充>
0x5fswap將棧最頂端的兩個數(shù)值互換(數(shù)值不能是 long 或 double 類型的)
0x60iadd將棧頂兩 int 型數(shù)值相加并將結(jié)果壓入棧頂
0x61ladd將棧頂兩 long 型數(shù)值相加并將結(jié)果壓入棧頂
0x62fadd將棧頂兩 float 型數(shù)值相加并將結(jié)果壓入棧頂
0x63dadd將棧頂兩 double 型數(shù)值相加并將結(jié)果壓入棧頂
0x64isub將棧頂兩 int 型數(shù)值相減并將結(jié)果壓入棧頂
0x65lsub將棧頂兩 long 型數(shù)值相減并將結(jié)果壓入棧頂
0x66fsub將棧頂兩 float 型數(shù)值相減并將結(jié)果壓入棧頂
0x67dsub將棧頂兩 double 型數(shù)值相減并將結(jié)果壓入棧頂
0x68imul將棧頂兩 int 型數(shù)值相乘并將結(jié)果壓入棧頂
0x69lmul將棧頂兩 long 型數(shù)值相乘并將結(jié)果壓入棧頂
0x6afmul將棧頂兩 float 型數(shù)值相乘并將結(jié)果壓入棧頂
0x6bdmul將棧頂兩 double 型數(shù)值相乘并將結(jié)果壓入棧頂
0x6cidiv將棧頂兩 int 型數(shù)值相除并將結(jié)果壓入棧頂
0x6dldiv將棧頂兩 long 型數(shù)值相除并將結(jié)果壓入棧頂
0x6efdiv將棧頂兩 float 型數(shù)值相除并將結(jié)果壓入棧頂
0x6fddiv將棧頂兩 double 型數(shù)值相除并將結(jié)果壓入棧頂
0x70irem將棧頂兩 int 型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂
0x71lrem將棧頂兩 long 型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂
0x72frem將棧頂兩 float 型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂
0x73drem將棧頂兩 double 型數(shù)值作取模運(yùn)算并將結(jié)果壓入棧頂
0x74ineg將棧頂 int 型數(shù)值取負(fù)并將結(jié)果壓入棧頂
0x75lneg將棧頂 long 型數(shù)值取負(fù)并將結(jié)果壓入棧頂
0x76fneg將棧頂 float 型數(shù)值取負(fù)并將結(jié)果壓入棧頂
0x77dneg將棧頂 double 型數(shù)值取負(fù)并將結(jié)果壓入棧頂
0x78ishl將 int 型數(shù)值左移位指定位數(shù)并將結(jié)果壓入棧頂
0x79lshl將 long 型數(shù)值左移位指定位數(shù)并將結(jié)果壓入棧頂
0x7aishr將 int 型數(shù)值右(符號)移位指定位數(shù)并將結(jié)果壓入棧頂
0x7blshr將 long 型數(shù)值右(符號)移位指定位數(shù)并將結(jié)果壓入棧頂
0x7ciushr將 int 型數(shù)值右(無符號)移位指定位數(shù)并將結(jié)果壓入棧頂
0x7dlushr將 long 型數(shù)值右(無符號)移位指定位數(shù)并將結(jié)果壓入棧頂
0x7eiand將棧頂兩 int 型數(shù)值作“按位與”并將結(jié)果壓入棧頂
0x7fland將棧頂兩 long 型數(shù)值作“按位與”并將結(jié)果壓入棧頂
0x80ior將棧頂兩 int 型數(shù)值作“按位或”并將結(jié)果壓入棧頂
0x81lor將棧頂兩 long 型數(shù)值作“按位或”并將結(jié)果壓入棧頂
0x82ixor將棧頂兩 int 型數(shù)值作“按位異或”并將結(jié)果壓入棧頂
0x83lxor將棧頂兩 long 型數(shù)值作“按位異或”并將結(jié)果壓入棧頂
0x84iinc將指定 int 型變量增加指定值(i++,
0x85i2l將棧頂 int 型數(shù)值強(qiáng)制轉(zhuǎn)換成 long 型數(shù)值并將結(jié)果壓入棧頂
0x86i2f將棧頂 int 型數(shù)值強(qiáng)制轉(zhuǎn)換成 float 型數(shù)值并將結(jié)果壓入棧頂
0x87i2d將棧頂 int 型數(shù)值強(qiáng)制轉(zhuǎn)換成 double 型數(shù)值并將結(jié)果壓入棧頂
0x88l2i將棧頂 long 型數(shù)值強(qiáng)制轉(zhuǎn)換成 int 型數(shù)值并將結(jié)果壓入棧頂
0x89l2f將棧頂 long 型數(shù)值強(qiáng)制轉(zhuǎn)換成 float 型數(shù)值并將結(jié)果壓入棧頂
0x8al2d將棧頂 long 型數(shù)值強(qiáng)制轉(zhuǎn)換成 double 型數(shù)值并將結(jié)果壓入棧頂
0x8bf2i將棧頂 float 型數(shù)值強(qiáng)制轉(zhuǎn)換成 int 型數(shù)值并將結(jié)果壓入棧頂
0x8cf2l將棧頂 float 型數(shù)值強(qiáng)制轉(zhuǎn)換成 long 型數(shù)值并將結(jié)果壓入棧頂
0x8df2d將棧頂 float 型數(shù)值強(qiáng)制轉(zhuǎn)換成 double 型數(shù)值并將結(jié)果壓入棧頂
0x8ed2i將棧頂 double 型數(shù)值強(qiáng)制轉(zhuǎn)換成 int 型數(shù)值并將結(jié)果壓入棧頂
0x8fd2l將棧頂 double 型數(shù)值強(qiáng)制轉(zhuǎn)換成 long 型數(shù)值并將結(jié)果壓入棧頂
0x90d2f將棧頂 double 型數(shù)值強(qiáng)制轉(zhuǎn)換成 float 型數(shù)值并將結(jié)果壓入棧頂
0x91i2b將棧頂 int 型數(shù)值強(qiáng)制轉(zhuǎn)換成 byte 型數(shù)值并將結(jié)果壓入棧頂
0x92i2c將棧頂 int 型數(shù)值強(qiáng)制轉(zhuǎn)換成 char 型數(shù)值并將結(jié)果壓入棧頂
0x93i2s將棧頂 int 型數(shù)值強(qiáng)制轉(zhuǎn)換成 short 型數(shù)值并將結(jié)果壓入棧頂
0x94lcmp比較棧頂兩 long 型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂
0x95fcmpl比較棧頂兩 float 型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個數(shù)值為 NaN 時,將 -1 壓入棧頂
0x96fcmpg比較棧頂兩 float 型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個數(shù)值為 NaN 時,將 1 壓入棧頂
0x97dcmpl比較棧頂兩 double 型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個數(shù)值為 NaN 時,將 -1 壓入棧頂
0x98dcmpg比較棧頂兩 double 型數(shù)值大小,并將結(jié)果(1,0,-1)壓入棧頂;當(dāng)其中一個數(shù)值為 NaN 時,將 1 壓入棧頂
0x99ifeq當(dāng)棧頂 int 型數(shù)值等于 0 時跳轉(zhuǎn)
0x9aifne當(dāng)棧頂 int 型數(shù)值不等于 0 時跳轉(zhuǎn)
0x9biflt當(dāng)棧頂 int 型數(shù)值小于 0 時跳轉(zhuǎn)
0x9cifge當(dāng)棧頂 int 型數(shù)值大于等于 0 時跳轉(zhuǎn)
0x9difgt當(dāng)棧頂 int 型數(shù)值大于 0 時跳轉(zhuǎn)
0x9eifle當(dāng)棧頂 int 型數(shù)值小于等于 0 時跳轉(zhuǎn)
0x9fif_icmpeq比較棧頂兩 int 型數(shù)值大小,當(dāng)結(jié)果等于 0 時跳轉(zhuǎn)
0xa0if_icmpne比較棧頂兩 int 型數(shù)值大小,當(dāng)結(jié)果不等于 0 時跳轉(zhuǎn)
0xa1if_icmplt比較棧頂兩 int 型數(shù)值大小,當(dāng)結(jié)果小于 0 時跳轉(zhuǎn)
0xa2if_icmpge比較棧頂兩 int 型數(shù)值大小,當(dāng)結(jié)果大于等于 0 時跳轉(zhuǎn)
0xa3if_icmpgt比較棧頂兩 int 型數(shù)值大小,當(dāng)結(jié)果大于 0 時跳轉(zhuǎn)
0xa4if_icmple比較棧頂兩 int 型數(shù)值大小,當(dāng)結(jié)果小于等于 0 時跳轉(zhuǎn)
0xa5if_acmpeq比較棧頂兩引用型數(shù)值,當(dāng)結(jié)果相等時跳轉(zhuǎn)
0xa6if_acmpne比較棧頂兩引用型數(shù)值,當(dāng)結(jié)果不相等時跳轉(zhuǎn)
0xa7goto無條件跳轉(zhuǎn)
0xa8jsr跳轉(zhuǎn)至指定 16 位 offset 位置,并將 jsr 下一條指令地址壓入棧頂
0xa9ret返回至本地變量指定的 index 的指令位置(一般與 jsr, jsr_w 聯(lián)合使用)
0xaatableswitch用于 switch 條件跳轉(zhuǎn),case 值連續(xù)(可變長度指令)
0xablookupswitch用于 switch 條件跳轉(zhuǎn),case 值不連續(xù)(可變長度指令)
0xacireturn從當(dāng)前方法返回 int
0xadlreturn從當(dāng)前方法返回 long
0xaefreturn從當(dāng)前方法返回 float
0xafdreturn從當(dāng)前方法返回 double
0xb0areturn從當(dāng)前方法返回對象引用
0xb1return從當(dāng)前方法返回void
0xb2getstatic獲取指定類的靜態(tài)域,并將其值壓入棧頂
0xb3putstatic為指定的類的靜態(tài)域賦值
0xb4getfield獲取指定類的實例域,并將其值壓入棧頂
0xb5putfield為指定的類的實例域賦值
0xb6invokevirtual調(diào)用實例方法
0xb7invokespecial調(diào)用超類構(gòu)造方法,實例初始化方法,私有方法
0xb8invokestatic調(diào)用靜態(tài)方法
0xb9invokeinterface調(diào)用接口方法
0xba
0xbbnew創(chuàng)建一個對象,并將其引用值壓入棧頂
0xbcnewarray創(chuàng)建一個指定原始類型(如int, float, char…)的數(shù)組,并將其引用值壓入棧頂
0xbdanewarray創(chuàng)建一個引用型(如類,接口,數(shù)組)的數(shù)組,并將其引用值壓入棧頂
0xbearraylength獲得數(shù)組的長度值并壓入棧頂
0xbfathrow將棧頂?shù)漠惓伋?/td>
0xc0checkcast檢驗類型轉(zhuǎn)換,檢驗未通過將拋出 ClassCastException
0xc1instanceof檢驗對象是否是指定的類的實例,如果是將 1 壓入棧頂,否則將0壓入棧頂
0xc2monitorenter獲得對象的鎖,用于同步方法或同步塊
0xc3monitorexit釋放對象的鎖,用于同步方法或同步塊
0xc4wide<待補(bǔ)充>
0xc5multianewarray創(chuàng)建指定類型和指定維度的多維數(shù)組(執(zhí)行該指令時,操作棧中必須包含各維度的長度值),并將其引用值壓入棧頂
0xc6ifnull為 null 時跳轉(zhuǎn)
0xc7ifnonnull不為 null 時跳轉(zhuǎn)
0xc8goto_w無條件跳轉(zhuǎn)(寬索引)
0xc9jsr_w跳轉(zhuǎn)至指定 32 位 offset 位置,并將 jsr_w 下一條指令地址壓入棧頂

3.7. 示例

public void onlyMe(Foo f) {synchronized(f) {doSomething();}
}

?編譯后,這段代碼生成的字節(jié)碼序列如下:

Method void onlyMe(Foo)
0 aload_1			// 將對象 f 入棧
1 dup				// 復(fù)制棧頂元素(即 f 的引用)
2 astore_2			// 將棧頂元素存儲到局部變量表 Slot 2 中
3 monitorenter		// 以棧頂元素(即 f)作為鎖,開始同步
4 aload_0			// 將局部變量 Slot 0(即 this 指針)的元素入棧
5 invokevirtual #5	// 調(diào)用 doSomething() 方法
8 aload_2			// 將局部變量 Slot 2 的元素(即 f)入棧
9 monitorexit		// 退出同步
10 goto 18			// 方法正常結(jié)束,跳轉(zhuǎn)到 18 返回
13 astore_3			// 從這步開始是異常路徑,見下面異常表的 Target 13
14 aload_2			// 將局部變量 Slot 2 的元素(即 f)入棧
15 monitorexit		// 退出同步
16 aload_3			// 將局部變量 Slot 3 的元素(即異常對象)入棧
17 athrow			// 把異常對象重新拋出給 onlyMe() 方法的調(diào)用者
18 return			// 方法正常返回Exception table:
FromTo Target Type4    10     13 any13    16     13 any

http://aloenet.com.cn/news/33965.html

相關(guān)文章:

  • 婚紗攝影網(wǎng)站建設(shè)新聞稿發(fā)布
  • 珠寶網(wǎng)站設(shè)計今日熱點新聞素材
  • sae安裝WordPress4.4合肥品牌seo
  • 蔬菜派送網(wǎng)站怎么做輔導(dǎo)班培訓(xùn)機(jī)構(gòu)
  • 內(nèi)蒙古地區(qū)做推廣網(wǎng)站搜索引擎推廣試題
  • 哈爾濱網(wǎng)站建設(shè)技術(shù)托管國家再就業(yè)免費(fèi)培訓(xùn)網(wǎng)
  • 如何申請域名建立網(wǎng)站資源最全的網(wǎng)盤搜索引擎
  • 網(wǎng)站內(nèi)容營銷武漢seo推廣優(yōu)化公司
  • 做網(wǎng)站個人怎么簽合同長沙全網(wǎng)覆蓋的網(wǎng)絡(luò)推廣
  • 網(wǎng)站設(shè)計效果專業(yè)樂云seoseo優(yōu)化專員招聘
  • b2b電商網(wǎng)站建設(shè)總推薦榜總點擊榜總排行榜
  • 手機(jī)商城網(wǎng)站如何開發(fā)一個網(wǎng)站
  • 免費(fèi)的行情軟件網(wǎng)站不用下載站內(nèi)搜索工具
  • 東莞專業(yè)網(wǎng)站設(shè)計咨詢線上運(yùn)營推廣
  • 網(wǎng)頁游戲排行榜前十名wangyiseo培訓(xùn)班 有用嗎
  • 天河網(wǎng)站建設(shè)制作百度客戶端電腦版下載
  • 怎么做一個論壇網(wǎng)站關(guān)鍵詞排名網(wǎng)絡(luò)推廣
  • 安卓app開發(fā)框架??趕eo計費(fèi)
  • 怎么做輪胎網(wǎng)站google官方入口
  • qq刷贊網(wǎng)站怎么做的谷歌瀏覽器網(wǎng)頁版入口
  • 靜態(tài)雙語企業(yè)網(wǎng)站后臺源碼手機(jī)網(wǎng)站建設(shè)
  • 蘋果app如何做ppt模板下載網(wǎng)站一個產(chǎn)品的宣傳和推廣方案
  • wordpress自適應(yīng)模版seow
  • 網(wǎng)站開發(fā)的基本條件廣州網(wǎng)站優(yōu)化公司
  • 德陽網(wǎng)站建設(shè)重慶seo論壇
  • 畢設(shè)網(wǎng)站可以用axure做嗎優(yōu)化服務(wù)公司
  • sql網(wǎng)站模板拼多多代運(yùn)營公司十大排名
  • 在家做兼職的比較靠譜的網(wǎng)站互聯(lián)網(wǎng)銷售
  • 做地推的網(wǎng)站關(guān)鍵詞排名怎么做上首頁
  • 網(wǎng)絡(luò)廣告網(wǎng)站怎么做百度小說排行榜總榜