日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JVM字节码

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM字节码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
棧和局部變量操作?
將常量壓入棧的指令?
aconst_null ? ?將null對象引用壓入棧?
iconst_m1 ? ? ?將int類型常量-1壓入棧?
iconst_0???????? 將int類型常量0壓入棧?
iconst_1???????? 將int類型常量1壓入棧?
iconst_2???????? 將int類型常量2壓入棧?
iconst_3???????? 將int類型常量3壓入棧?
iconst_4???????? 將int類型常量4壓入棧?
iconst_5???????? 將int類型常量5壓入棧?
lconst_0???????? 將long類型常量0壓入棧?
lconst_1???????? 將long類型常量1壓入棧?
fconst_0???????? 將float類型常量0壓入棧?
fconst_1???????? 將float類型常量1壓入棧?
dconst_0???????? 將double類型常量0壓入棧?
dconst_1???????? 將double類型常量1壓入棧?
bipush???????????? 將一個8位帶符號整數壓入棧?
sipush???????????? 將16位帶符號整數壓入棧?
ldc ? ? ? ? ? ? ? ? ? 把常量池中的項壓入棧?
ldc_w ? ? ? ? ? ? ? 把常量池中的項壓入棧(使用寬索引)?
ldc2_w???????????? 把常量池中long類型或者double類型的項壓入棧(使用寬索引)?
從棧中的局部變量中裝載值的指令?
iload ? ? ? ? ? ? ? ? 從局部變量中裝載int類型值?
lload ? ? ? ? ? ? ? ? 從局部變量中裝載long類型值?
fload ? ? ? ? ? ? ? ? 從局部變量中裝載float類型值?
dload ? ? ? ? ? ? ? ?從局部變量中裝載double類型值?
aload ? ? ? ? ? ? ? ?從局部變量中裝載引用類型值(refernce)?
iload_0???????????? 從局部變量0中裝載int類型值?
iload_1???????????? 從局部變量1中裝載int類型值?
iload_2???????????? 從局部變量2中裝載int類型值?
iload_3???????????? 從局部變量3中裝載int類型值?
lload_0???????????? 從局部變量0中裝載long類型值?
lload_1???????????? 從局部變量1中裝載long類型值?
lload_2???????????? 從局部變量2中裝載long類型值?

lload_3???????????? 從局部變量3中裝載long類型值?
fload_0???????????? 從局部變量0中裝載float類型值?
fload_1???????????? 從局部變量1中裝載float類型值?
fload_2???????????? 從局部變量2中裝載float類型值?
fload_3???????????? 從局部變量3中裝載float類型值?
dload_0???????????? 從局部變量0中裝載double類型值?
dload_1???????????? 從局部變量1中裝載double類型值?
dload_2???????????? 從局部變量2中裝載double類型值?
dload_3???????????? 從局部變量3中裝載double類型值?
aload_0???????????? 從局部變量0中裝載引用類型值?
aload_1???????????? 從局部變量1中裝載引用類型值?
aload_2???????????? 從局部變量2中裝載引用類型值?
aload_3???????????? 從局部變量3中裝載引用類型值?
iaload ? ? ? ? ? ? ? ?從數組中裝載int類型值?
laload ? ? ? ? ? ? ? ?從數組中裝載long類型值?
faload ? ? ? ? ? ? ? ?從數組中裝載float類型值?
daload ? ? ? ? ? ? ? 從數組中裝載double類型值?
aaload ? ? ? ? ? ? ? 從數組中裝載引用類型值?
baload ? ? ? ? ? ? ? 從數組中裝載byte類型或boolean類型值?
caload ? ? ? ? ? ? ? 從數組中裝載char類型值?
saload ? ? ? ? ? ? ? 從數組中裝載short類型值?
將棧中的值存入局部變量的指令?
istore ? ? ? ? ? ? ? 將int類型值存入局部變量?
lstore ? ? ? ? ? ? ? 將long類型值存入局部變量?
fstore ? ? ? ? ? ? ? 將float類型值存入局部變量?
dstore ? ? ? ? ? ? ?將double類型值存入局部變量?
astore ? ? ? ? ? ? ?將將引用類型或returnAddress類型值存入局部變量?
istore_0 ? ? ? ? ? 將int類型值存入局部變量0?
istore_1 ? ? ? ? ? 將int類型值存入局部變量1?
istore_2 ? ? ? ? ? 將int類型值存入局部變量2?

istore_3???????? 將int類型值存入局部變量3?
lstore_0???????? 將long類型值存入局部變量0?
lstore_1???????? 將long類型值存入局部變量1?
lstore_2???????? 將long類型值存入局部變量2?
lstore_3???????? 將long類型值存入局部變量3?
fstore_0???????? 將float類型值存入局部變量0?
fstore_1???????? 將float類型值存入局部變量1?
fstore_2???????? 將float類型值存入局部變量2?
fstore_3???????? 將float類型值存入局部變量3?
dstore_0???????? 將double類型值存入局部變量0?
dstore_1???????? 將double類型值存入局部變量1?
dstore_2???????? 將double類型值存入局部變量2?
dstore_3???????? 將double類型值存入局部變量3?
astore_0???????? 將引用類型或returnAddress類型值存入局部變量0?
astore_1???????? 將引用類型或returnAddress類型值存入局部變量1?
astore_2???????? 將引用類型或returnAddress類型值存入局部變量2?
astore_3???????? 將引用類型或returnAddress類型值存入局部變量3?
iastore???????????? 將int類型值存入數組中?
lastore???????????? 將long類型值存入數組中?
fastore???????????? 將float類型值存入數組中?
dastore???????????? 將double類型值存入數組中?
aastore???????????? 將引用類型值存入數組中?
bastore???????????? 將byte類型或者boolean類型值存入數組中?
castore???????????? 將char類型值存入數組中?
sastore???????????? 將short類型值存入數組中?
wide指令?
wide???????????? 使用附加字節擴展局部變量索引?
通用(無類型)棧操作?
nop???????????? 不做任何操作?
pop???????????? 彈出棧頂端一個字長的內容?
pop2???????????? 彈出棧頂端兩個字長的內容?
dup???????????? 復制棧頂部一個字長內容?
dup_x1???????????? 復制棧頂部一個字長的內容,然后將復制內容及原來彈出的兩個字長的內容壓入棧?


dup_x2???????????? 復制棧頂部一個字長的內容,然后將復制內容及原來彈出的三個字長的內容壓入棧?
dup2 ? ? ? ? ? ? ? ?復制棧頂部兩個字長內容?
dup2_x1 ? ? ? ? ? 復制棧頂部兩個字長的內容,然后將復制內容及原來彈出的三個字長的內容壓入棧?
dup2_x2 ? ? ? ? ? 復制棧頂部兩個字長的內容,然后將復制內容及原來彈出的四個字長的內容壓入棧?
swap ? ? ? ? ? ? ? ?交換棧頂部兩個字長內容?
類型轉換?
i2l ? ? ? ? ? ? ?把int類型的數據轉化為long類型?
i2f ? ? ? ? ? ? ?把int類型的數據轉化為float類型?
i2d???????????? 把int類型的數據轉化為double類型?
l2i ? ? ? ? ? ? ?把long類型的數據轉化為int類型?
l2f ? ? ? ? ? ? ?把long類型的數據轉化為float類型?
l2d???????????? 把long類型的數據轉化為double類型?
f2i ? ? ? ? ? ? ?把float類型的數據轉化為int類型?
f2l ? ? ? ? ? ? ?把float類型的數據轉化為long類型?
f2d???????????? 把float類型的數據轉化為double類型?
d2i???????????? 把double類型的數據轉化為int類型?
d2l???????????? 把double類型的數據轉化為long類型?
d2f???????????? 把double類型的數據轉化為float類型?
i2b???????????? 把int類型的數據轉化為byte類型?
i2c???????????? 把int類型的數據轉化為char類型?
i2s???????????? 把int類型的數據轉化為short類型?
整數運算?
iadd???????????? 執行int類型的加法?
ladd???????????? 執行long類型的加法?
isub???????????? 執行int類型的減法?
lsub???????????? 執行long類型的減法?
imul???????????? 執行int類型的乘法?
lmul???????????? 執行long類型的乘法?
idiv???????????? 執行int類型的除法?
ldiv???????????? 執行long類型的除法?

irem???????????? 計算int類型除法的余數?
lrem???????????? 計算long類型除法的余數?
ineg???????????? 對一個int類型值進行取反操作?
lneg???????????? 對一個long類型值進行取反操作?
iinc???????????? 把一個常量值加到一個int類型的局部變量上?
邏輯運算? 移位操作?
ishl???????????? 執行int類型的向左移位操作?
lshl???????????? 執行long類型的向左移位操作?
ishr???????????? 執行int類型的向右移位操作?
lshr???????????? 執行long類型的向右移位操作?
iushr???????????? 執行int類型的向右邏輯移位操作?
lushr???????????? 執行long類型的向右邏輯移位操作?
按位布爾運算?
iand???????????? 對int類型值進行“邏輯與”操作?
land???????????? 對long類型值進行“邏輯與”操作?
ior???????????? 對int類型值進行“邏輯或”操作?
lor???????????? 對long類型值進行“邏輯或”操作?
ixor???????????? 對int類型值進行“邏輯異或”操作?
lxor???????????? 對long類型值進行“邏輯異或”操作?
浮點運算?
fadd???????????? 執行float類型的加法?
dadd???????????? 執行double類型的加法?
fsub???????????? 執行float類型的減法?
dsub???????????? 執行double類型的減法?
fmul???????????? 執行float類型的乘法?
dmul???????????? 執行double類型的乘法?
fdiv???????????? 執行float類型的除法?
ddiv???????????? 執行double類型的除法?
frem???????????? 計算float類型除法的余數?
drem???????????? 計算double類型除法的余數?
fneg???????????? 將一個float類型的數值取反?
dneg???????????? 將一個double類型的數值取反?

對象和數組?
對象操作指令?
new???????????? 創建一個新對象?
checkcast???????? 確定對象為所給定的類型?
getfield???????? 從對象中獲取字段?
putfield???????? 設置對象中字段的值?
getstatic???????? 從類中獲取靜態字段?
putstatic???????? 設置類中靜態字段的值?
instanceof???????? 判斷對象是否為給定的類型?
數組操作指令?
newarray???????? 分配數據成員類型為基本上數據類型的新數組?
anewarray???????? 分配數據成員類型為引用類型的新數組?
arraylength???????? 獲取數組長度?
multianewarray???????? 分配新的多維數組?
控制流?
條件分支指令?
ifeq???????????? 如果等于0,則跳轉?
ifne???????????? 如果不等于0,則跳轉?
iflt???????????? 如果小于0,則跳轉?
ifge???????????? 如果大于等于0,則跳轉?
ifgt???????????? 如果大于0,則跳轉?
ifle???????????? 如果小于等于0,則跳轉?
if_icmpcq???????? 如果兩個int值相等,則跳轉?
if_icmpne???????? 如果兩個int類型值不相等,則跳轉?
if_icmplt???????? 如果一個int類型值小于另外一個int類型值,則跳轉?
if_icmpge???????? 如果一個int類型值大于或者等于另外一個int類型值,則跳轉?
if_icmpgt???????? 如果一個int類型值大于另外一個int類型值,則跳轉?
if_icmple???????? 如果一個int類型值小于或者等于另外一個int類型值,則跳轉?
ifnull???????????? 如果等于null,則跳轉?
ifnonnull???????? 如果不等于null,則跳轉?
if_acmpeq???????? 如果兩個對象引用相等,則跳轉?
if_acmpnc???????? 如果兩個對象引用不相等,則跳轉?
比較指令?
lcmp???????????? 比較long類型值?
fcmpl???????????? 比較float類型值(當遇到NaN時,返回-1)?
fcmpg???????????? 比較float類型值(當遇到NaN時,返回1)?
dcmpl???????????? 比較double類型值(當遇到NaN時,返回-1)?
dcmpg???????????? 比較double類型值(當遇到NaN時,返回1)?

無條件轉移指令?
goto???????????? 無條件跳轉?
goto_w???????????? 無條件跳轉(寬索引)?
表跳轉指令?
tableswitch???????? 通過索引訪問跳轉表,并跳轉?
lookupswitch???????? 通過鍵值匹配訪問跳轉表,并執行跳轉操作?
異常?
athrow???????????? 拋出異常或錯誤?
finally子句?
jsr???????????? 跳轉到子例程?
jsr_w???????????? 跳轉到子例程(寬索引)?
rct???????????? 從子例程返回?
方法調用與返回?
方法調用指令?
invokcvirtual???????? 運行時按照對象的類來調用實例方法?
invokespecial???????? 根據編譯時類型來調用實例方法?
invokestatic???????? 調用類(靜態)方法?
invokcinterface???????? 調用接口方法?
方法返回指令?
ireturn???????????? 從方法中返回int類型的數據?
lreturn???????????? 從方法中返回long類型的數據?
freturn???????????? 從方法中返回float類型的數據?
dreturn???????????? 從方法中返回double類型的數據?
areturn???????????? 從方法中返回引用類型的數據?
return???????????? 從方法中返回,返回值為void?
線程同步?
montiorenter???????? 進入并獲取對象監視器?

monitorexit???????? 釋放并退出對象監視器


from:?http://blog.csdn.net/kobejayandy/article/details/40720323

總結

以上是生活随笔為你收集整理的JVM字节码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。