Welcome to the blog of lsieun

opcode
opcodemnemonic symbol opcodemnemonic symbol opcodemnemonic symbol opcodemnemonic symbol
0nop 64lstore_1 128ior 192checkcast
1aconst_null 65lstore_2 129lor 193instanceof
2iconst_m1 66lstore_3 130ixor 194monitorenter
3iconst_0 67fstore_0 131lxor 195monitorexit
4iconst_1 68fstore_1 132iinc 196wide
5iconst_2 69fstore_2 133i2l 197multianewarray
6iconst_3 70fstore_3 134i2f 198ifnull
7iconst_4 71dstore_0 135i2d 199ifnonnull
8iconst_5 72dstore_1 136l2i 200goto_w
9lconst_0 73dstore_2 137l2f 201jsr_w
10lconst_1 74dstore_3 138l2d 202breakpoint
11fconst_0 75astore_0 139f2i 203
12fconst_1 76astore_1 140f2l 204
13fconst_2 77astore_2 141f2d 205
14dconst_0 78astore_3 142d2i 206
15dconst_1 79iastore 143d2l 207
16bipush 80lastore 144d2f 208
17sipush 81fastore 145i2b 209
18ldc 82dastore 146i2c 210
19ldc_w 83aastore 147i2s 211
20ldc2_w 84bastore 148lcmp 212
21iload 85castore 149fcmpl 213
22lload 86sastore 150fcmpg 214
23fload 87pop 151dcmpl 215
24dload 88pop2 152dcmpg 216
25aload 89dup 153ifeq 217
26iload_0 90dup_x1 154ifne 218
27iload_1 91dup_x2 155iflt 219
28iload_2 92dup2 156ifge 220
29iload_3 93dup2_x1 157ifgt 221
30lload_0 94dup2_x2 158ifle 222
31lload_1 95swap 159if_icmpeq 223
32lload_2 96iadd 160if_icmpne 224
33lload_3 97ladd 161if_icmplt 225
34fload_0 98fadd 162if_icmpge 226
35fload_1 99dadd 163if_icmpgt 227
36fload_2 100isub 164if_icmple 228
37fload_3 101lsub 165if_acmpeq 229
38dload_0 102fsub 166if_acmpne 230
39dload_1 103dsub 167goto 231
40dload_2 104imul 168jsr 232
41dload_3 105lmul 169ret 233
42aload_0 106fmul 170tableswitch 234
43aload_1 107dmul 171lookupswitch 235
44aload_2 108idiv 172ireturn 236
45aload_3 109ldiv 173lreturn 237
46iaload 110fdiv 174freturn 238
47laload 111ddiv 175dreturn 239
48faload 112irem 176areturn 240
49daload 113lrem 177return 241
50aaload 114frem 178getstatic 242
51baload 115drem 179putstatic 243
52caload 116ineg 180getfield 244
53saload 117lneg 181putfield 245
54istore 118fneg 182invokevirtual 246
55lstore 119dneg 183invokespecial 247
56fstore 120ishl 184invokestatic 248
57dstore 121lshl 185invokeinterface 249
58astore 122ishr 186invokedynamic 250
59istore_0 123lshr 187new 251
60istore_1 124iushr 188newarray 252
61istore_2 125lushr 189anewarray 253
62istore_3 126iand 190arraylength 254impdep1
63lstore_0 127land 191athrow 255impdep2

The Java Virtual Machine's heap stores all objects created by a running Java application. Objects are created by the new, newarray, anewarray, and multianewarray instructions, but never freed explicitly by the code. Garbage collection is the process of automatically freeing objects that are no longer referenced by the program.

Unlike all other opcodes, method invocations(invokevirtualinvokespecialinvokestaticinvokeinterfaceinvokedynamic) pops a variable number of entries of the stack!

  • AllocationInstruction
    • new
    • newarray
    • anewarray
    • multianewarray
  • ArithmeticInstruction
    • iadd
    • ladd
    • fadd
    • dadd
    • isub
    • lsub
    • fsub
    • dsub
    • imul
    • lmul
    • fmul
    • dmul
    • idiv
    • ldiv
    • fdiv
    • ddiv
    • irem
    • lrem
    • frem
    • drem
    • ineg
    • lneg
    • fneg
    • dneg
    • ishl
    • lshl
    • ishr
    • lshr
    • iushr
    • lushr
    • iand
    • land
    • ior
    • lor
    • ixor
    • lxor
    • iinc
  • ArrayInstruction
    • iaload
    • laload
    • faload
    • daload
    • aaload
    • baload
    • caload
    • saload
    • iastore
    • lastore
    • fastore
    • dastore
    • aastore
    • bastore
    • castore
    • sastore
  • CompareInstruction
    • lcmp
    • fcmpl
    • fcmpg
    • dcmpl
    • dcmpg
  • ConstantPushInstruction
    • aconst_null
    • iconst_m1
    • iconst_0
    • iconst_1
    • iconst_2
    • iconst_3
    • iconst_4
    • iconst_5
    • lconst_0
    • lconst_1
    • fconst_0
    • fconst_1
    • fconst_2
    • dconst_0
    • dconst_1
    • bipush
    • sipush
  • ConversionInstruction
    • i2l
    • i2f
    • i2d
    • l2i
    • l2f
    • l2d
    • f2i
    • f2l
    • f2d
    • d2i
    • d2l
    • d2f
    • i2b
    • i2c
    • i2s
  • CPInstruction
    • ldc
    • ldc_w
    • ldc2_w
  • FieldInstruction
    • getstatic
    • putstatic
    • getfield
    • putfield
  • IfInstruction
    • ifeq
    • ifne
    • iflt
    • ifge
    • ifgt
    • ifle
    • if_icmpeq
    • if_icmpne
    • if_icmplt
    • if_icmpge
    • if_icmpgt
    • if_icmple
    • if_acmpeq
    • if_acmpne
    • ifnull
    • ifnonnull
  • InvokeInstruction
    • invokevirtual
    • invokespecial
    • invokestatic
    • invokeinterface
    • invokedynamic
  • JumpInstruction
    • goto
    • goto_w
  • LocalVariableInstruction
    • iload
    • lload
    • fload
    • dload
    • aload
    • iload_0
    • iload_1
    • iload_2
    • iload_3
    • lload_0
    • lload_1
    • lload_2
    • lload_3
    • fload_0
    • fload_1
    • fload_2
    • fload_3
    • dload_0
    • dload_1
    • dload_2
    • dload_3
    • aload_0
    • aload_1
    • aload_2
    • aload_3
    • istore
    • lstore
    • fstore
    • dstore
    • astore
    • istore_0
    • istore_1
    • istore_2
    • istore_3
    • lstore_0
    • lstore_1
    • lstore_2
    • lstore_3
    • fstore_0
    • fstore_1
    • fstore_2
    • fstore_3
    • dstore_0
    • dstore_1
    • dstore_2
    • dstore_3
    • astore_0
    • astore_1
    • astore_2
    • astore_3
  • ReturnInstruction
    • ireturn
    • lreturn
    • freturn
    • dreturn
    • areturn
    • return
  • SelectInstruction
    • tableswitch
    • lookupswitch
  • StackInstruction
    • pop
    • pop2
    • dup
    • dup_x1
    • dup_x2
    • dup2
    • dup2_x1
    • dup2_x2
    • swap
  • SubroutineInstruction
    • jsr
    • ret
    • jsr_w
  • XXXInstruction
    • nop
    • arraylength
    • athrow
    • checkcast
    • instanceof
    • monitorenter
    • monitorexit
    • wide
    • impdep1
    • impdep2