欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JVM常用指令速查表的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下JVM常用指令速查表的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)網(wǎng)站建設公司是一家服務多年做網(wǎng)站建設策劃設計制作的公司,為廣大用戶提供了成都網(wǎng)站制作、做網(wǎng)站,成都網(wǎng)站設計,一元廣告,成都做網(wǎng)站選創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價比,滿足客戶不同層次的需求一站式服務歡迎致電。

JVM 基本指令

基本指令集是最常用的,總結(jié)如下:

指令釋義
iconst_1int型常量值1進棧
bipush將一個byte型常量值推送至棧頂
iload_1第二個int型局部變量進棧,從0開始計數(shù)
istore_1將棧頂int型數(shù)值存入第二個局部變量,從0開始計數(shù)
iadd棧頂兩int型數(shù)值相加,并且結(jié)果進棧
return當前方法返回void
getstatic獲取指定類的靜態(tài)域,并將其值壓入棧頂
putstatic為指定的類的靜態(tài)域賦值
invokevirtual調(diào)用實例方法
invokespecial調(diào)用超類構(gòu)造方法、實例初始化方法、私有方法
invokestatic調(diào)用靜態(tài)方法
invokeinterface調(diào)用接口方法
new創(chuàng)建一個對象,并且其引用進棧
newarray創(chuàng)建一個基本類型數(shù)組,并且其引用進棧

JVM 指令集

這個指令集也不是最全的,但是 99% 的都收錄了進來。這個表格包含:指令碼、助記符、功能描述三列。

指令碼助記符功能描述
0x00nop無操作
0x01aconst_null指令格式:aconst_null 功能描述:null進棧。注意:JVM并沒有為null指派一個具體的值。
0x02iconst_m1int型常量值-1進棧
0x03iconst_0int型常量值0進棧
0x04iconst_1int型常量值1進棧
0x05iconst_2int型常量值2進棧
0x06iconst_3int型常量值3進棧
0x07iconst_4int型常量值4進棧
0x08iconst_5int型常量值5進棧
0x09lconst_0long型常量值0進棧
0x0Alconst_1long型常量值1進棧
0x0Bfconst_0float型常量值0進棧
0x0Cfconst_1float型常量值1進棧
0x0Dfconst_2float型常量值2進棧
0x0Edconst_0double型常量值0進棧
0x0Fdconst_1double型常量值1進棧
0x10bipush將一個byte型常量值推送至棧頂
0x11sipush將一個short型常量值推送至棧頂
0x12ldc將int、float或String型常量值從常量池中推送至棧頂
0x13ldc_w將int、float或String型常量值從常量池中推送至棧頂(寬索引)
0x14ldc2_w將long或double型常量值從常量池中推送至棧頂(寬索引)
0x15iload指定的int型局部變量進棧
0x16lload指定的long型局部變量進棧
0x17fload指定的float型局部變量進棧
0x18dload指定的double型局部變量進棧
0x19aload指令格式:aload index。功能描述:當前frame的局部變量數(shù)組中下標為 index 的引用型局部變量進棧。index:無符號一byte整型。和wide指令聯(lián)用,可以使index為兩byte。
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型局部變量進棧
0x29load_3第四個double型局部變量進棧
0x2Aaload_0指令格式:aload_0 指令的行為類似于aload指令index為0的情況。
0x2Baload_1同上
0x2Caload_2同上
0x2Daload_3同上
0x2Eiaload指定的int型數(shù)組的指定下標處的值進棧
0x2Flaload指定的long型數(shù)組的指定下標處的值進棧
0x30faload指定的float型數(shù)組的指定下標處的值進棧
0x31daload指定的double型數(shù)組的指定下標處的值進棧
0x32aaload指令格式:aaload 功能描述:棧頂?shù)臄?shù)組下標(index)、數(shù)組引用(arrayref)出棧,并根據(jù)這兩個數(shù)值取出對應的數(shù)組元素值(value)進棧。拋出異常:如果arrayref的值為null,會拋出 ullPointerException。如果index造成數(shù)組越界,會拋出 rrayIndexOutOfBoundsException。
0x33baload指定的boolean或byte型數(shù)組的指定下標處的值進棧
0x34caload指定的char型數(shù)組的指定下標處的值進棧
0x35saload指定的short型數(shù)組的指定下標處的值進棧
0x36istore將棧頂int型數(shù)值存入指定的局部變量
0x37lstore將棧頂long型數(shù)值存入指定的局部變量
0x38fstore將棧頂float型數(shù)值存入指定的局部變量
0x39dstore將棧頂double型數(shù)值存入指定的局部變量
0x3Aastore指令格式:astore index,功能描述:將棧頂數(shù)值(objectref)存入當前frame的局部變量數(shù)組中指定下標 ndex 處的變量中,棧頂數(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指令格式:astore_0 能描述:  該指令的行為類似于astore指令index為0的情況。
0x4Castore_1同上
0x4Dastore_2同上
0x4Eastore_3同上
0x4Fiastore將棧頂int型數(shù)值存入指定數(shù)組的指定下標處
0x50lastore將棧頂long型數(shù)值存入指定數(shù)組的指定下標處
0x51fastore將棧頂float型數(shù)值存入指定數(shù)組的指定下標處
0x52dastore將棧頂double型數(shù)值存入指定數(shù)組的指定下標處
0x53aastore指令格式:aastore,功能描述:  根據(jù)棧頂?shù)囊眯蛿?shù)值(value)、數(shù)組下標(index)、數(shù)組引用(arrayref)出棧,將數(shù)值存入對應的數(shù)組元素中。拋出異常:  如果value的類型和arrayref所引用的數(shù)組的元素類型不兼容,會拋出拋出ArrayStoreException。如果index造成數(shù)組越界,會拋出ArrayIndexOutOfBoundsException。如果arrayref值為null,會拋出NullPointerException。
0x54bastore將棧頂boolean或byte型數(shù)值存入指定數(shù)組的指定下標處
0x55castore將棧頂char型數(shù)值存入指定數(shù)組的指定下標處
0x56sastore將棧頂short型數(shù)值存入指定數(shù)組的指定下標處
0x57pop棧頂數(shù)值出棧 (該棧頂數(shù)值不能是long或double型)
0x58pop2棧頂?shù)囊粋€(如果是long、double型的)或兩個(其它類型的)數(shù)值出棧
0x59dup復制棧頂數(shù)值,并且復制值進棧
0x5Adup_x1復制棧頂數(shù)值,并且復制值進棧2次
0x5Bdup_x2復制棧頂數(shù)值,并且復制值進棧2次或3次
0x5Cdup2復制棧頂一個(long、double型的)或兩個(其它類型的)數(shù)值,并且復制值進棧
0x5Ddup2_x1
0x5Edup2_x2
0x5Fswap棧頂?shù)膬蓚€數(shù)值互換(要求棧頂?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ù)值作取模運算,并且結(jié)果進棧
0x71lrem棧頂兩long型數(shù)值作取模運算,并且結(jié)果進棧
0x72frem棧頂兩float型數(shù)值作取模運算,并且結(jié)果進棧
0x73drem棧頂兩double型數(shù)值作取模運算,并且結(jié)果進棧
0x74ineg棧頂int型數(shù)值取負,并且結(jié)果進棧
0x75lneg棧頂long型數(shù)值取負,并且結(jié)果進棧
0x76fneg棧頂float型數(shù)值取負,并且結(jié)果進棧
0x77dneg棧頂double型數(shù)值取負,并且結(jié)果進棧
0x78ishlint型數(shù)值左移指定位數(shù),并且結(jié)果進棧
0x79lshllong型數(shù)值左移指定位數(shù),并且結(jié)果進棧
0x7Aishrint型數(shù)值帶符號右移指定位數(shù),并且結(jié)果進棧
0x7Blshrlong型數(shù)值帶符號右移指定位數(shù),并且結(jié)果進棧
0x7Ciushrint型數(shù)值無符號右移指定位數(shù),并且結(jié)果進棧
0x7Dlushrlong型數(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型變量增加指定值
0x85i2l棧頂int值強轉(zhuǎn)long值,并且結(jié)果進棧
0x86i2f棧頂int值強轉(zhuǎn)float值,并且結(jié)果進棧
0x87i2d棧頂int值強轉(zhuǎn)double值,并且結(jié)果進棧
0x88l2i棧頂long值強轉(zhuǎn)int值,并且結(jié)果進棧
0x89l2f棧頂long值強轉(zhuǎn)float值,并且結(jié)果進棧
0x8Al2d棧頂long值強轉(zhuǎn)double值,并且結(jié)果進棧
0x8Bf2i棧頂float值強轉(zhuǎn)int值,并且結(jié)果進棧
0x8Cf2l棧頂float值強轉(zhuǎn)long值,并且結(jié)果進棧
0x8Df2d棧頂float值強轉(zhuǎn)double值,并且結(jié)果進棧
0x8Ed2i棧頂double值強轉(zhuǎn)int值,并且結(jié)果進棧
0x8Fd2l棧頂double值強轉(zhuǎn)long值,并且結(jié)果進棧
0x90d2f棧頂double值強轉(zhuǎn)float值,并且結(jié)果進棧
0x91i2b棧頂int值強轉(zhuǎn)byte值,并且結(jié)果進棧
0x92i2c棧頂int值強轉(zhuǎn)char值,并且結(jié)果進棧
0x93i2s棧頂int值強轉(zhuǎn)short值,并且結(jié)果進棧
0x94lcmp比較棧頂兩long型數(shù)值大小,并且結(jié)果(1,0,-1)進棧
0x95fcmpl比較棧頂兩float型數(shù)值大小,并且結(jié)果(1,0,-1)進棧;當其中一個數(shù)值為NaN時, -1進棧
0x96fcmpg比較棧頂兩float型數(shù)值大小,并且結(jié)果(1,0,-1)進棧;當其中一個數(shù)值為NaN時,1進棧
0x97dcmpl比較棧頂兩double型數(shù)值大小,并且結(jié)果(1,0,-1)進棧;當其中一個數(shù)值為NaN時,-1進棧
0x98dcmpg比較棧頂兩double型數(shù)值大小,并且結(jié)果(1,0,-1)進棧;當其中一個數(shù)值為NaN時,1進棧
0x99ifeq當棧頂int型數(shù)值等于0時跳轉(zhuǎn)
0x9Aifne當棧頂int型數(shù)值不等于0時跳轉(zhuǎn)
0x9Biflt當棧頂int型數(shù)值小于0時跳轉(zhuǎn)
0x9Cifge當棧頂int型數(shù)值大于等于0時跳轉(zhuǎn)
0x9Difgt當棧頂int型數(shù)值大于0時跳轉(zhuǎn)
0x9Eifle當棧頂int型數(shù)值小于等于0時跳轉(zhuǎn)
0x9Fif_icmpeq比較棧頂兩int型數(shù)值大小,當結(jié)果等于0時跳轉(zhuǎn)
0xA0if_icmpne比較棧頂兩int型數(shù)值大小,當結(jié)果不等于0時跳轉(zhuǎn)
0xA1if_icmplt比較棧頂兩int型數(shù)值大小,當結(jié)果小于0時跳轉(zhuǎn)
0xA2if_icmpge比較棧頂兩int型數(shù)值大小,當結(jié)果大于等于0時跳轉(zhuǎn)
0xA3if_icmpgt比較棧頂兩int型數(shù)值大小,當結(jié)果大于0時跳轉(zhuǎn)
0xA4if_icmple比較棧頂兩int型數(shù)值大小,當結(jié)果小于等于0時跳轉(zhuǎn)
0xA5if_acmpeq比較棧頂兩引用型數(shù)值,當結(jié)果相等時跳轉(zhuǎn)
0xA6if_acmpne比較棧頂兩引用型數(shù)值,當結(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當前方法返回int
0xADlreturn當前方法返回long
0xAEfreturn當前方法返回float
0xAFdreturn當前方法返回double
0xB0areturn指令格式:  areturn。功能描述:  從方法中返回一個對象的引用。拋出異常:  如果當前方法是synchronized方法,并且當前線程不是改方法的鎖的擁有者,會拋出IllegalMonitorStateException。
0xB1return當前方法返回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建一個對象,并且其引用進棧
0xBCnewarray創(chuàng)建一個基本類型數(shù)組,并且其引用進棧
0xBDanewarray指令格式:anewarray index1 index2,功能描述:  棧頂數(shù)值(count)作為數(shù)組長度,創(chuàng)建一個引用 型數(shù)組。棧頂數(shù)值出棧,數(shù)組引用進棧。拋出異常:  如果count小于0,會拋出NegativeArraySizeException
0xBEarraylength指令格式:arraylength,功能描述:棧頂?shù)臄?shù)組引用(arrayref)出棧,該數(shù)組的長度進棧。拋出異常:如果arrayref的值為null,會拋出NullPointerException。
0xBFathrow指令格式:athrow,功能描述:  將棧頂?shù)臄?shù)值作為異常或錯誤拋出。出異常:如果棧頂數(shù)值為null,則使用NullPointerException代替棧頂數(shù)值拋出。如果方法是的,則有可能拋出IllegalMonitorStateException。
0xC0checkcast類型轉(zhuǎn)換檢查,如果該檢查未通過將會拋出ClassCastException異常
0xc1instanceof檢查對象是否是指定的類的實例。如果是,1進棧;否則,0進棧
0xC2monitorenter獲得對象鎖
0xC3monitorexit釋放對象鎖
0xC4wide用于修改其他指令的行為
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下一條指令地址進棧
0xCAbreakpoint
0xFEimpdep1
0xFFmpdep2

看完了這篇文章,相信你對“JVM常用指令速查表的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.chinadenli.net,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前題目:JVM常用指令速查表的示例分析-創(chuàng)新互聯(lián)
URL分享:http://www.chinadenli.net/article18/djdpdp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設網(wǎng)站營銷服務器托管靜態(tài)網(wǎng)站Google外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作