You are previewing The Java® Virtual Machine Specification, Java SE 7 Edition, Third Edition.
O'Reilly logo
The Java® Virtual Machine Specification, Java SE 7 Edition, Third Edition

Book Description

Written by the inventors of the technology, The Java® Virtual Machine Specification, Java SE 7 Edition, is the definitive technical reference for the Java Virtual Machine.

The book provides complete, accurate, and detailed coverage of the Java Virtual Machine. It fully describes the invokedynamic instruction and method handle mechanism added in Java SE 7, and gives the formal Prolog specification of the type-checking verifier introduced in Java SE 6. The book also includes the class file extensions for generics and annotations defined in Java SE 5.0, and aligns the instruction set and initialization rules with the Java Memory Model.

Table of Contents

  1. Title Page
  2. Copyright Page
  3. Table of Contents
  4. Preface to the Java SE 7 Edition
  5. Preface to the Second Edition
  6. Preface to the First Edition
  7. Chapter 1. Introduction
    1. 1.1. A Bit of History
    2. 1.2. The Java Virtual Machine
    3. 1.3. Summary of Chapters
    4. 1.4. Notation
  8. Chapter 2. The Structure of the Java Virtual Machine
    1. 2.1. The class File Format
    2. 2.2. Data Types
    3. 2.3. Primitive Types and Values
    4. 2.4. Reference Types and Values
    5. 2.5. Run-Time Data Areas
    6. 2.6. Frames
    7. 2.7. Representation of Objects
    8. 2.8. Floating-Point Arithmetic
    9. 2.9. Special Methods
    10. 2.10. Exceptions
    11. 2.11. Instruction Set Summary
    12. 2.12. Class Libraries
    13. 2.13. Public Design, Private Implementation
  9. Chapter 3. Compiling for the Java Virtual Machine
    1. 3.1. Format of Examples
    2. 3.2. Use of Constants, Local Variables, and Control Constructs
    3. 3.3. Arithmetic
    4. 3.4. Accessing the Run-Time Constant Pool
    5. 3.5. More Control Examples
    6. 3.6. Receiving Arguments
    7. 3.7. Invoking Methods
    8. 3.8. Working with Class Instances
    9. 3.9. Arrays
    10. 3.10. Compiling Switches
    11. 3.11. Operations on the Operand Stack
    12. 3.12. Throwing and Handling Exceptions
    13. 3.13. Compiling finally
    14. 3.14. Synchronization
    15. 3.15. Annotations
  10. Chapter 4. The class File Format
    1. 4.1. The ClassFile Structure
    2. 4.2. The Internal Form of Names
    3. 4.3. Descriptors and Signatures
    4. 4.4. The Constant Pool
    5. 4.5. Fields
    6. 4.6. Methods
    7. 4.7. Attributes
    8. 4.8. Format Checking
    9. 4.9. Constraints on Java Virtual Machine code
    10. 4.10. Verification of class Files
    11. 4.11. Limitations of the Java Virtual Machine
  11. Chapter 5. Loading, Linking, and Initializing
    1. 5.1. The Run-Time Constant Pool
    2. 5.2. Java Virtual Machine Startup
    3. 5.3. Creation and Loading
    4. 5.4. Linking
    5. 5.5. Initialization
    6. 5.6. Binding Native Method Implementations
    7. 5.7. Java Virtual Machine Exit
  12. Chapter 6. The Java Virtual Machine Instruction Set
    1. 6.1. Assumptions: The Meaning of “Must”
    2. 6.2. Reserved Opcodes
    3. 6.3. Virtual Machine Errors
    4. 6.4. Format of Instruction Descriptions
    5. 6.5. Instructions
  13. Chapter 7. Opcode Mnemonics by Opcode
  14. Index
  15. Appendix A. Limited License Grant