CARVIEW |
Select Language
HTTP/1.1 200 OK
Server: AkamaiNetStorage
Content-Type: text/html
ETag: "8ddbcbd3f56bdf7e6d801ea8fb754bd1:1726583050.209535"
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: max-age=21600
Date: Sat, 19 Jul 2025 06:28:28 GMT
Content-Length: 7128
Connection: keep-alive
The Java® Virtual Machine Specification
2018-08-21
Legal Notice
-->
-->
The Java® Virtual Machine Specification | ||
---|---|---|
Next |
The Java® Virtual Machine Specification
Java SE 11 Edition
Tim Lindholm
Frank Yellin
Gilad Bracha
Alex Buckley
Daniel Smith
2018-08-21
Legal NoticeTable of Contents
- 1. Introduction
- 2. The Structure of the Java Virtual Machine
-
- 2.1. The
class
File Format - 2.2. Data Types
- 2.3. Primitive Types and Values
- 2.4. Reference Types and Values
- 2.5. Run-Time Data Areas
- 2.6. Frames
- 2.7. Representation of Objects
- 2.8. Floating-Point Arithmetic
- 2.9. Special Methods
- 2.10. Exceptions
- 2.11. Instruction Set Summary
-
- 2.11.1. Types and the Java Virtual Machine
- 2.11.2. Load and Store Instructions
- 2.11.3. Arithmetic Instructions
- 2.11.4. Type Conversion Instructions
- 2.11.5. Object Creation and Manipulation
- 2.11.6. Operand Stack Management Instructions
- 2.11.7. Control Transfer Instructions
- 2.11.8. Method Invocation and Return Instructions
- 2.11.9. Throwing Exceptions
- 2.11.10. Synchronization
- 2.12. Class Libraries
- 2.13. Public Design, Private Implementation
- 2.1. The
- 3. Compiling for the Java Virtual Machine
-
- 3.1. Format of Examples
- 3.2. Use of Constants, Local Variables, and Control Constructs
- 3.3. Arithmetic
- 3.4. Accessing the Run-Time Constant Pool
- 3.5. More Control Examples
- 3.6. Receiving Arguments
- 3.7. Invoking Methods
- 3.8. Working with Class Instances
- 3.9. Arrays
- 3.10. Compiling Switches
- 3.11. Operations on the Operand Stack
- 3.12. Throwing and Handling Exceptions
- 3.13. Compiling
finally
- 3.14. Synchronization
- 3.15. Annotations
- 3.16. Modules
- 4. The
class
File Format -
- 4.1. The
ClassFile
Structure - 4.2. Names
- 4.3. Descriptors
- 4.4. The Constant Pool
-
- 4.4.1. The
CONSTANT_Class_info
Structure - 4.4.2. The
CONSTANT_Fieldref_info
,CONSTANT_Methodref_info
, andCONSTANT_InterfaceMethodref_info
Structures - 4.4.3. The
CONSTANT_String_info
Structure - 4.4.4. The
CONSTANT_Integer_info
andCONSTANT_Float_info
Structures - 4.4.5. The
CONSTANT_Long_info
andCONSTANT_Double_info
Structures - 4.4.6. The
CONSTANT_NameAndType_info
Structure - 4.4.7. The
CONSTANT_Utf8_info
Structure - 4.4.8. The
CONSTANT_MethodHandle_info
Structure - 4.4.9. The
CONSTANT_MethodType_info
Structure - 4.4.10. The
CONSTANT_Dynamic_info
andCONSTANT_InvokeDynamic_info
Structures - 4.4.11. The
CONSTANT_Module_info
Structure - 4.4.12. The
CONSTANT_Package_info
Structure
- 4.4.1. The
- 4.5. Fields
- 4.6. Methods
- 4.7. Attributes
-
- 4.7.1. Defining and Naming New Attributes
- 4.7.2. The
ConstantValue
Attribute - 4.7.3. The
Code
Attribute - 4.7.4. The
StackMapTable
Attribute - 4.7.5. The
Exceptions
Attribute - 4.7.6. The
InnerClasses
Attribute - 4.7.7. The
EnclosingMethod
Attribute - 4.7.8. The
Synthetic
Attribute - 4.7.9. The
Signature
Attribute - 4.7.10. The
SourceFile
Attribute - 4.7.11. The
SourceDebugExtension
Attribute - 4.7.12. The
LineNumberTable
Attribute - 4.7.13. The
LocalVariableTable
Attribute - 4.7.14. The
LocalVariableTypeTable
Attribute - 4.7.15. The
Deprecated
Attribute - 4.7.16. The
RuntimeVisibleAnnotations
Attribute - 4.7.17. The
RuntimeInvisibleAnnotations
Attribute - 4.7.18. The
RuntimeVisibleParameterAnnotations
Attribute - 4.7.19. The
RuntimeInvisibleParameterAnnotations
Attribute - 4.7.20. The
RuntimeVisibleTypeAnnotations
Attribute - 4.7.21. The
RuntimeInvisibleTypeAnnotations
Attribute - 4.7.22. The
AnnotationDefault
Attribute - 4.7.23. The
BootstrapMethods
Attribute - 4.7.24. The
MethodParameters
Attribute - 4.7.25. The
Module
Attribute - 4.7.26. The
ModulePackages
Attribute - 4.7.27. The
ModuleMainClass
Attribute - 4.7.28. The
NestHost
Attribute - 4.7.29. The
NestMembers
Attribute
- 4.8. Format Checking
- 4.9. Constraints on Java Virtual Machine Code
- 4.10. Verification of
class
Files -
- 4.10.1. Verification by Type Checking
-
- 4.10.1.1. Accessors for Java Virtual Machine Artifacts
- 4.10.1.2. Verification Type System
- 4.10.1.3. Instruction Representation
- 4.10.1.4. Stack Map Frames and Type Transitions
- 4.10.1.5. Type Checking Abstract and Native Methods
- 4.10.1.6. Type Checking Methods with Code
- 4.10.1.7. Type Checking Load and Store Instructions
- 4.10.1.8. Type Checking for
protected
Members - 4.10.1.9. Type Checking Instructions
-
- aaload
- aastore
- aconst_null
- aload, aload_<n>
- anewarray
- areturn
- arraylength
- astore, astore_<n>
- athrow
- baload
- bastore
- bipush
- caload
- castore
- checkcast
- d2f, d2i, d2l
- dadd
- daload
- dastore
- dcmp<op>
- dconst_<d>
- ddiv
- dload, dload_<n>
- dmul
- dneg
- drem
- dreturn
- dstore, dstore_<n>
- dsub
- dup
- dup_x1
- dup_x2
- dup2
- dup2_x1
- dup2_x2
- f2d, f2i, f2l
- fadd
- faload
- fastore
- fcmp<op>
- fconst_<f>
- fdiv
- fload, fload_<n>
- fmul
- fneg
- frem
- freturn
- fstore, fstore_<n>
- fsub
- getfield
- getstatic
- goto, goto_w
- i2b, i2c, i2d, i2f, i2l, i2s
- iadd
- iaload
- iand
- iastore
- iconst_<i>
- idiv
- if_acmp<cond>
- if_icmp<cond>
- if<cond>
- ifnonnull, ifnull
- iinc
- iload, iload_<n>
- imul
- ineg
- instanceof
- invokedynamic
- invokeinterface
- invokespecial
- invokestatic
- invokevirtual
- ior, irem
- ireturn
- ishl, ishr, iushr
- istore, istore_<n>
- isub, ixor
- l2d, l2f, l2i
- ladd
- laload
- land
- lastore
- lcmp
- lconst_<l>
- ldc, ldc_w, ldc2_w
- ldiv
- lload, lload_<n>
- lmul
- lneg
- lookupswitch
- lor, lrem
- lreturn
- lshl, lshr, lushr
- lstore, lstore_<n>
- lsub, lxor
- monitorenter, monitorexit
- multianewarray
- new
- newarray
- nop
- pop, pop2
- putfield
- putstatic
- return
- saload
- sastore
- sipush
- swap
- tableswitch
- wide
- 4.10.2. Verification by Type Inference
- 4.11. Limitations of the Java Virtual Machine
- 4.1. The
- 5. Loading, Linking, and Initializing
-
- 5.1. The Run-Time Constant Pool
- 5.2. Java Virtual Machine Startup
- 5.3. Creation and Loading
- 5.4. Linking
- 5.5. Initialization
- 5.6. Binding Native Method Implementations
- 5.7. Java Virtual Machine Exit
- 6. The Java Virtual Machine Instruction Set
-
- 6.1. Assumptions: The Meaning of "Must"
- 6.2. Reserved Opcodes
- 6.3. Virtual Machine Errors
- 6.4. Format of Instruction Descriptions
- 6.5. Instructions
-
- aaload
-
- aastore
-
- aconst_null
-
- aload
-
- aload_<n>
-
- anewarray
-
- areturn
-
- arraylength
-
- astore
-
- astore_<n>
-
- athrow
-
- baload
-
- bastore
-
- bipush
-
- caload
-
- castore
-
- checkcast
-
- d2f
-
- d2i
-
- d2l
-
- dadd
-
- daload
-
- dastore
-
- dcmp<op>
-
- dconst_<d>
-
- ddiv
-
- dload
-
- dload_<n>
-
- dmul
-
- dneg
-
- drem
-
- dreturn
-
- dstore
-
- dstore_<n>
-
- dsub
-
- dup
-
- dup_x1
-
- dup_x2
-
- dup2
-
- dup2_x1
-
- dup2_x2
-
- f2d
-
- f2i
-
- f2l
-
- fadd
-
- faload
-
- fastore
-
- fcmp<op>
-
- fconst_<f>
-
- fdiv
-
- fload
-
- fload_<n>
-
- fmul
-
- fneg
-
- frem
-
- freturn
-
- fstore
-
- fstore_<n>
-
- fsub
-
- getfield
-
- getstatic
-
- goto
-
- goto_w
-
- i2b
-
- i2c
-
- i2d
-
- i2f
-
- i2l
-
- i2s
-
- iadd
-
- iaload
-
- iand
-
- iastore
-
- iconst_<i>
-
- idiv
-
- if_acmp<cond>
-
- if_icmp<cond>
-
- if<cond>
-
- ifnonnull
-
- ifnull
-
- iinc
-
- iload
-
- iload_<n>
-
- imul
-
- ineg
-
- instanceof
-
- invokedynamic
-
- invokeinterface
-
- invokespecial
-
- invokestatic
-
- invokevirtual
-
- ior
-
- irem
-
- ireturn
-
- ishl
-
- ishr
-
- istore
-
- istore_<n>
-
- isub
-
- iushr
-
- ixor
-
- jsr
-
- jsr_w
-
- l2d
-
- l2f
-
- l2i
-
- ladd
-
- laload
-
- land
-
- lastore
-
- lcmp
-
- lconst_<l>
-
- ldc
-
- ldc_w
-
- ldc2_w
-
- ldiv
-
- lload
-
- lload_<n>
-
- lmul
-
- lneg
-
- lookupswitch
-
- lor
-
- lrem
-
- lreturn
-
- lshl
-
- lshr
-
- lstore
-
- lstore_<n>
-
- lsub
-
- lushr
-
- lxor
-
- monitorenter
-
- monitorexit
-
- multianewarray
-
- new
-
- newarray
-
- nop
-
- pop
-
- pop2
-
- putfield
-
- putstatic
-
- ret
-
- return
-
- saload
-
- sastore
-
- sipush
-
- swap
-
- tableswitch
-
- wide
-
- 7. Opcode Mnemonics by Opcode
- A. Limited License Grant
Next | ||
Chapter 1. Introduction |