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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JVM字节码指令表

發布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM字节码指令表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字節碼助記符指令含義
0x00nopNone
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將單字節的常量值(-128~127)推送至棧頂
0x11sipush將一個短整型常量(-32768~32767)推送至棧頂
0x12ldc將int,float或String型常量值從常量池中推送至棧頂
0x13ldc_w將int,float或String型常量值從常量池中推送至棧頂(寬索引)
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型數組指定索引的值推送至棧頂
0x2flaload將long型數組指定索引的值推送至棧頂
0x30faload將float型數組指定索引的值推送至棧頂
0x31daload將double型數組指定索引的值推送至棧頂
0x32aaload將引用類型數組指定索引的值推送至棧頂
0x33baload將boolean或byte型數組指定索引的值推送至棧頂
0x34caload將char型數組指定索引的值推送至棧頂
0x35saload將short型數組指定索引的值推送至棧頂
0x36istore將棧頂int型數值存入指定本地變量
0x37lstore將棧頂long型數值存入指定本地變量
0x38fstore將棧頂float型數值存入指定本地變量
0x39dstore將棧頂double型數值存入指定本地變量
0x3aastore將棧頂引用類型數值存入指定本地變量
0x3bistore_0將棧頂int型數值存入第一個本地變量
0x3cistore_1將棧頂int型數值存入第二個本地變量
0x3distore_2將棧頂int型數值存入第三個本地變量
0x3eistore_3將棧頂int型數值存入第四個本地變量
0x3flstore_0將棧頂long型數值存入第一個本地變量
0x40lstore_1將棧頂long型數值存入第二個本地變量
0x41lstore_2將棧頂long型數值存入第三個本地變量
0x42lstore_3將棧頂long型數值存入第四個本地變量
0x43fstore_0將棧頂float型數值存入第一個本地變量
0x44fstore_1將棧頂float型數值存入第二個本地變量
0x45fstore_2將棧頂float型數值存入第三個本地變量
0x46fstore_3將棧頂float型數值存入第四個本地變量
0x47dstore_0將棧頂double型數值存入第一個本地變量
0x48dstore_1將棧頂double型數值存入第二個本地變量
0x49dstore_2將棧頂double型數值存入第三個本地變量
0x4adstore_3將棧頂double型數值存入第四個本地變量
0x4bastore_0將棧頂引用型數值存入第一個本地變量
0x4castore_1將棧頂引用型數值存入第二個本地變量
0x4dastore_2將棧頂引用型數值存入第三個本地變量
0x4eastore_3將棧頂引用型數值存入第四個本地變量
0x4fiastore將棧頂int型數值存入指定數組的指定索引位置
0x50lastore將棧頂long型數值存入指定數組的指定索引位置
0x51fastore將棧頂float型數值存入指定數組的指定索引位置
0x52dastore將棧頂double型數值存入指定數組的指定索引位置
0x53aastore將棧頂引用型數值存入指定數組的指定索引位置
0x54bastore將棧頂boolean或byte型數值存入指定數組的指定索引位置
0x55castore將棧頂char型數值存入指定數組的指定索引位置
0x56sastore將棧頂short型數值存入指定數組的指定索引位置
0x57pop將棧頂數值彈出(數值不能是long或double類型的)
0x58pop2將棧頂的一個(對于非long或double類型)或兩個數值(對于非long或double的其他類型)彈出
0x59dup復制棧頂數值并將復制值壓入棧頂
0x5adup_x1復制棧頂數值并將兩個復制值壓入棧頂
0x5bdup_x2復制棧頂數值并將三個(或兩個)復制值壓入棧頂
0x5cdup2復制棧頂一個(對于long或double類型)或兩個(對于非long或double的其他類型)數值并將復制值壓入棧頂
0x5ddup2_x1dup_x1指令的雙倍版本
0x5edup2_x2dup_x2指令的雙倍版本
0x5fswap將棧頂最頂端的兩個數值互換(數值不能是long或double類型)
0x60iadd將棧頂兩int型數值相加并將結果壓入棧頂
0x61ladd將棧頂兩long型數值相加并將結果壓入棧頂
0x62fadd將棧頂兩float型數值相加并將結果壓入棧頂
0x63dadd將棧頂兩double型數值相加并將結果壓入棧頂
0x64isub將棧頂兩int型數值相減并將結果壓入棧頂
0x65lsub將棧頂兩long型數值相減并將結果壓入棧頂
0x66fsub將棧頂兩float型數值相減并將結果壓入棧頂
0x67dsub將棧頂兩double型數值相減并將結果壓入棧頂
0x68imul將棧頂兩int型數值相乘并將結果壓入棧頂
0x69lmul將棧頂兩long型數值相乘并將結果壓入棧頂
0x6afmul將棧頂兩float型數值相乘并將結果壓入棧頂
0x6bdmul將棧頂兩double型數值相乘并將結果壓入棧頂
0x6cidiv將棧頂兩int型數值相除并將結果壓入棧頂
0x6dldiv將棧頂兩long型數值相除并將結果壓入棧頂
0x6efdiv將棧頂兩float型數值相除并將結果壓入棧頂
0x6fddiv將棧頂兩double型數值相除并將結果壓入棧頂
0x70irem將棧頂兩int型數值作取模運算并將結果壓入棧頂
0x71lrem將棧頂兩long型數值作取模運算并將結果壓入棧頂
0x72frem將棧頂兩float型數值作取模運算并將結果壓入棧頂
0x73drem將棧頂兩double型數值作取模運算并將結果壓入棧頂
0x74ineg將棧頂int型數值取負并將結果壓入棧頂
0x75lneg將棧頂long型數值取負并將結果壓入棧頂
0x76fneg將棧頂float型數值取負并將結果壓入棧頂
0x77dneg將棧頂double型數值取負并將結果壓入棧頂
0x78ishl將int型數值左移指定位數并將結果壓入棧頂
0x79lshl將long型數值左移指定位數并將結果壓入棧頂
0x7aishr將int型數值右(帶符號)移指定位數并將結果壓入棧頂
0x7blshr將long型數值右(帶符號)移指定位數并將結果壓入棧頂
0x7ciushr將int型數值右(無符號)移指定位數并將結果壓入棧頂
0x7dlushr將long型數值右(無符號)移指定位數并將結果壓入棧頂
0x7eiand將棧頂兩int型數值"按位與"并將結果壓入棧頂
0x7fland將棧頂兩long型數值"按位與"并將結果壓入棧頂
0x80ior將棧頂兩int型數值"按位或"并將結果壓入棧頂
0x81lor將棧頂兩long型數值"按位或"并將結果壓入棧頂
0x82ixor將棧頂兩int型數值"按位異或"并將結果壓入棧頂
0x83lxor將棧頂兩long型數值"按位異或"并將結果壓入棧頂
0x84iinc將指定int型變量增加指定值(如i++, i--, i+=2等)
0x85i2l將棧頂int型數值強制轉換為long型數值并將結果壓入棧頂
0x86i2f將棧頂int型數值強制轉換為float型數值并將結果壓入棧頂
0x87i2d將棧頂int型數值強制轉換為double型數值并將結果壓入棧頂
0x88l2i將棧頂long型數值強制轉換為int型數值并將結果壓入棧頂
0x89l2f將棧頂long型數值強制轉換為float型數值并將結果壓入棧頂
0x8al2d將棧頂long型數值強制轉換為double型數值并將結果壓入棧頂
0x8bf2i將棧頂float型數值強制轉換為int型數值并將結果壓入棧頂
0x8cf2l將棧頂float型數值強制轉換為long型數值并將結果壓入棧頂
0x8df2d將棧頂float型數值強制轉換為double型數值并將結果壓入棧頂
0x8ed2i將棧頂double型數值強制轉換為int型數值并將結果壓入棧頂
0x8fd2l將棧頂double型數值強制轉換為long型數值并將結果壓入棧頂
0x90d2f將棧頂double型數值強制轉換為float型數值并將結果壓入棧頂
0x91i2b將棧頂int型數值強制轉換為byte型數值并將結果壓入棧頂
0x92i2c將棧頂int型數值強制轉換為char型數值并將結果壓入棧頂
0x93i2s將棧頂int型數值強制轉換為short型數值并將結果壓入棧頂
0x94lcmp比較棧頂兩long型數值大小, 并將結果(1, 0或-1)壓入棧頂
0x95fcmpl比較棧頂兩float型數值大小, 并將結果(1, 0或-1)壓入棧頂; 當其中一個數值為NaN時, 將-1壓入棧頂
0x96fcmpg比較棧頂兩float型數值大小, 并將結果(1, 0或-1)壓入棧頂; 當其中一個數值為NaN時, 將1壓入棧頂
0x97dcmpl比較棧頂兩double型數值大小, 并將結果(1, 0或-1)壓入棧頂; 當其中一個數值為NaN時, 將-1壓入棧頂
0x98dcmpg比較棧頂兩double型數值大小, 并將結果(1, 0或-1)壓入棧頂; 當其中一個數值為NaN時, 將1壓入棧頂
0x99ifeq當棧頂int型數值等于0時跳轉
0x9aifne當棧頂int型數值不等于0時跳轉
0x9biflt當棧頂int型數值小于0時跳轉
0x9cifge當棧頂int型數值大于等于0時跳轉
0x9difgt當棧頂int型數值大于0時跳轉
0x9eifle當棧頂int型數值小于等于0時跳轉
0x9fif_icmpeq比較棧頂兩int型數值大小, 當結果等于0時跳轉
0xa0if_icmpne比較棧頂兩int型數值大小, 當結果不等于0時跳轉
0xa1if_icmplt比較棧頂兩int型數值大小, 當結果小于0時跳轉
0xa2if_icmpge比較棧頂兩int型數值大小, 當結果大于等于0時跳轉
0xa3if_icmpgt比較棧頂兩int型數值大小, 當結果大于0時跳轉
0xa4if_icmple比較棧頂兩int型數值大小, 當結果小于等于0時跳轉
0xa5if_acmpeq比較棧頂兩引用型數值, 當結果相等時跳轉
0xa6if_acmpne比較棧頂兩引用型數值, 當結果不相等時跳轉
0xa7goto無條件跳轉
0xa8jsr跳轉至指定的16位offset位置, 并將jsr的下一條指令地址壓入棧頂
0xa9ret返回至本地變量指定的index的指令位置(一般與jsr或jsr_w聯合使用)
0xaatableswitch用于switch條件跳轉, case值連續(可變長度指令)
0xablookupswitch用于switch條件跳轉, case值不連續(可變長度指令)
0xacireturn從當前方法返回int
0xadlreturn從當前方法返回long
0xaefreturn從當前方法返回float
0xafdreturn從當前方法返回double
0xb0areturn從當前方法返回對象引用
0xb1return從當前方法返回void
0xb2getstatic獲取指定類的靜態域, 并將其壓入棧頂
0xb3putstatic為指定類的靜態域賦值
0xb4getfield獲取指定類的實例域, 并將其壓入棧頂
0xb5putfield為指定類的實例域賦值
0xb6invokevirtual調用實例方法
0xb7invokespecial調用超類構建方法, 實例初始化方法, 私有方法
0xb8invokestatic調用靜態方法
0xb9invokeinterface調用接口方法
0xbainvokedynamic調用動態方法
0xbbnew創建一個對象, 并將其引用引用值壓入棧頂
0xbcnewarray創建一個指定的原始類型(如int, float, char等)的數組, 并將其引用值壓入棧頂
0xbdanewarray創建一個引用型(如類, 接口, 數組)的數組, 并將其引用值壓入棧頂
0xbearraylength獲取數組的長度值并壓入棧頂
0xbfathrow將棧頂的異常拋出
0xc0checkcast檢驗類型轉換, 檢驗未通過將拋出 ClassCastException
0xc1instanceof檢驗對象是否是指定類的實際, 如果是將1壓入棧頂, 否則將0壓入棧頂
0xc2monitorenter獲得對象的鎖, 用于同步方法或同步塊
0xc3monitorexit釋放對象的鎖, 用于同步方法或同步塊
0xc4wide擴展本地變量的寬度
0xc5multianewarray創建指定類型和指定維度的多維數組(執行該指令時, 操作棧中必須包含各維度的長度值), 并將其引用壓入棧頂
0xc6ifnull為null時跳轉
0xc7ifnonnull不為null時跳轉
0xc8goto_w無條件跳轉(寬索引)
0xc9jsr_w跳轉至指定的32位offset位置, 并將jsr_w的下一條指令地址壓入棧頂

?

轉自《深入理解 Java 虛擬機》

?

?


【Java學習資源】整理推薦

  • MAT 分析堆內存快照
  • jclasslib 查看類信息
  • 增大 MAT 堆內存
  • JVM 常用配置參數(Java 8)
  • 40 道JVM面試題解答
  • JVM 問題排查常用指令
  • jvisualvm 遠程連接服務器 JVM
  • 字節碼指令分類
  • -verbose:gc 和 -XX:+PrintGC 的區別
  • JVM字節碼指令表
  • 圖解 Class 文件結構
  • Class 文件的結構
  • JVM 故障處理工具列表
  • HotSpot 內存分配的主要規則
  • 開啟 GC 日志
  • 垃圾收集器及特點
  • JVM垃圾回收算法
  • 什么樣的 Java 對象會被當垃圾回收?
  • 內存溢出復現
  • HotSpot VM 中對象的內存分析
  • JVM 控制的內存區域
  • JVM家族
  • Java 的發展史
  • 常見 JVM dump 指令

?

?


【Java面試題與答案】整理推薦

  • 基礎與語法
  • 集合
  • 網絡編程
  • 并發編程
  • Web
  • 安全
  • 設計模式
  • 框架
  • 算法與數據結構
  • 異常
  • 文件解析與生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

?

總結

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

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