Module java.base
Package java.lang.classfile

# Interface Instruction

≠
public abstract sealed interface Instruction
extends java.lang.classfile.CodeElement
permits java.lang.classfile.instruction.ArrayLoadInstruction, java.lang.classfile.instruction.ArrayStoreInstruction, java.lang.classfile.instruction.BranchInstruction, java.lang.classfile.instruction.ConstantInstruction, java.lang.classfile.instruction.ConvertInstruction, java.lang.classfile.instruction.DiscontinuedInstruction, java.lang.classfile.instruction.FieldInstruction, java.lang.classfile.instruction.IncrementInstruction, java.lang.classfile.instruction.InvokeDynamicInstruction, java.lang.classfile.instruction.InvokeInstruction, java.lang.classfile.instruction.LoadInstruction, java.lang.classfile.instruction.LookupSwitchInstruction, java.lang.classfile.instruction.MonitorInstruction, java.lang.classfile.instruction.NewMultiArrayInstruction, java.lang.classfile.instruction.NewObjectInstruction, java.lang.classfile.instruction.NewPrimitiveArrayInstruction, java.lang.classfile.instruction.NewReferenceArrayInstruction, java.lang.classfile.instruction.NopInstruction, java.lang.classfile.instruction.OperatorInstruction, java.lang.classfile.instruction.ReturnInstruction, java.lang.classfile.instruction.StackInstruction, java.lang.classfile.instruction.StoreInstruction, java.lang.classfile.instruction.TableSwitchInstruction, java.lang.classfile.instruction.ThrowInstruction, java.lang.classfile.instruction.TypeCheckInstruction, jdk.internal.classfile.impl.AbstractInstruction
Comparing master and cf

All Superinterfaces:
  `ClassFileElement, CodeElement`

All Known Subinterfaces:
  `ArrayLoadInstruction, ArrayStoreInstruction, BranchInstruction, ConstantInstruction, ConstantInstruction.ArgumentConstantInstruction, ConstantInstruction.IntrinsicConstantInstruction, ConstantInstruction.LoadConstantInstruction, ConvertInstruction, DiscontinuedInstruction, DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction, FieldInstruction, IncrementInstruction, InvokeDynamicInstruction, InvokeInstruction, LoadInstruction, LookupSwitchInstruction, MonitorInstruction, NewMultiArrayInstruction, NewObjectInstruction, NewPrimitiveArrayInstruction, NewReferenceArrayInstruction, NopInstruction, OperatorInstruction, ReturnInstruction, StackInstruction, StoreInstruction, TableSwitchInstruction, ThrowInstruction, TypeCheckInstruction`

public sealed interface Instruction extends CodeElement permits ArrayLoadInstruction, ArrayStoreInstruction, BranchInstruction, ConstantInstruction, ConvertInstruction, DiscontinuedInstruction, FieldInstruction, InvokeDynamicInstruction, InvokeInstruction, LoadInstruction, StoreInstruction, IncrementInstruction, LookupSwitchInstruction, MonitorInstruction, NewMultiArrayInstruction, NewObjectInstruction, NewPrimitiveArrayInstruction, NewReferenceArrayInstruction, NopInstruction, OperatorInstruction, ReturnInstruction, StackInstruction, TableSwitchInstruction, ThrowInstruction, TypeCheckInstruction (not exhaustive)
Models an executable instruction in the `code` array of the `Code` attribute of a method. The order of instructions in a `CodeModel` is significant.

The `opcode` identifies the operation of an instruction. Each kind of opcode has its own modeling interface for instructions.

See Java Virtual Machine Specification:
  6.5 Instructions
Sealed Class Hierarchy Graph:
Since:
  24
See Also:
  Moved to a definition list with class notes.Moved to a definition.Moved to an unordered list with class tag-list.
  - `Opcode`

## Methods

- =
  public abstract java.lang.classfile.Opcode opcode()
- =
  public abstract int sizeInBytes()

## Summary

Differences
| Elements | Comments | Descriptions | Total
Added | Changed | Removed | Added | Changed | Removed | Added | Changed | Removed
--- | --- | --- | --- | --- | --- | --- | --- | ---
Instruction |  |  |  |  |  |  | 5 |  |  | 5
Total |  |  |  |  |  |  | 5 |  |  | 5