SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Written by the inventors of the technology, The Java® Virtual Machine Specification, Java SE 8 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 new features added in Java SE 8, including the invocation of default methods and the class file extensions for type annotations and method parameters. The book also clarifies the interpretation of class file attributes and the rules of bytecode verification.
Preface to the Java SE 8 Edition xv
Chapter 1: Introduction 1
1.1 A Bit of History 1
1.2 The Java Virtual Machine 2
1.3 Organization of the Specification 3
1.4 Notation 4
1.5 Feedback 4
Chapter 2: The Structure of the Java Virtual Machine 5
2.1 The class File Format 5
2.2 Data Types 6
2.3 Primitive Types and Values 6
2.4 Reference Types and Values 11
2.5 Run-Time Data Areas 11
2.6 Frames 15
2.7 Representation of Objects 19
2.8 Floating-Point Arithmetic 19
2.9 Special Methods 22
2.10 Exceptions 23
2.11 Instruction Set Summary 25
2.12 Class Libraries 37
2.13 Public Design, Private Implementation 37
Chapter 3: Compiling for the Java Virtual Machine 39
3.1 Format of Examples 39
3.2 Use of Constants, Local Variables, and Control Constructs 40
3.3 Arithmetic 45
3.4 Accessing the Run-Time Constant Pool 46
3.5 More Control Examples 47
3.6 Receiving Arguments 50
3.7 Invoking Methods 51
3.8 Working with Class Instances 53
3.9 Arrays 55
3.10 Compiling Switches 57
3.11 Operations on the Operand Stack 59
3.12 Throwing and Handling Exceptions 60
3.13 Compiling finally 63
3.14 Synchronization 66
3.15 Annotations 67
Chapter 4: The class File Format 69
4.1 The ClassFile Structure 70
4.2 The Internal Form of Names 74
4.3 Descriptors 75
4.4 The Constant Pool 78
4.5 Fields 90
4.6 Methods 92
4.7 Attributes 95
4.8 Format Checking 158
4.9 Constraints on Java Virtual Machine Code 159
4.10 Verification of class Files 166
4.11 Limitations of the Java Virtual Machine 327
Chapter 5: Loading, Linking, and Initializing 329
5.1 The Run-Time Constant Pool 329
5.2 Java Virtual Machine Startup 332
5.3 Creation and Loading 332
5.4 Linking 339
5.5 Initialization 352
5.6 Binding Native Method Implementations 355
5.7 Java Virtual Machine Exit 355
Chapter 6: The Java Virtual Machine Instruction Set 357
6.1 Assumptions: The Meaning of "Must" 357
6.2 Reserved Opcodes 358
6.3 Virtual Machine Errors 358
6.4 Format of Instruction Descriptions 359
6.5 Instructions 362
Chapter 7: Opcode Mnemonics by Opcode 559
Index 563
Appendix A: Limited License Grant 581