v
Table of Contents
Preface to the Java SE 8 Edition xiii
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
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.3.1 Integral Types and Values 7
2.3.2 Floating-Point Types, Value Sets, and Values 8
2.3.3 The returnAddress Type and Values 10
2.3.4 The boolean Type 10
2.4 Reference Types and Values 11
2.5 Run-Time Data Areas 11
2.5.1 The pc Register 12
2.5.2 Java Virtual Machine Stacks 12
2.5.3 Heap 13
2.5.4 Method Area 13
2.5.5 Run-Time Constant Pool 14
2.5.6 Native Method Stacks 14
2.6 Frames 15
2.6.1 Local Variables 16
2.6.2 Operand Stacks 17
2.6.3 Dynamic Linking 18
2.6.4 Normal Method Invocation Completion 18
2.6.5 Abrupt Method Invocation Completion 18
2.7 Representation of Objects 19
2.8 Floating-Point Arithmetic 19
2.8.1 Java Virtual Machine Floating-Point Arithmetic and IEEE
754 19
2.8.2 Floating-Point Modes 20
2.8.3 Value Set Conversion 20
2.9 Special Methods 22
2.10 Exceptions 23
2.11 Instruction Set Summary 25