Example: quiz answers

The Java® Virtual Machine Specification - Oracle

The java Virtual Machine Specification java SE 8 Edition Tim Lindholm Frank Yellin Gilad Bracha Alex Buckley 2015-02-13. Specification : JSR-337 java SE 8 Release Contents (" Specification "). Version: 8. Status: Maintenance Release Release: March 2015. Copyright 1997, 2015, Oracle America, Inc. and/or its affiliates. 500 Oracle Parkway, Redwood City, California 94065, All rights reserved. Oracle and java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. The Specification provided herein is provided to you only under the Limited License Grant included herein as Appendix A. Please see Appendix A, Limited License Grant.

Java Programming Language, Dan Smith at Oracle consulted with implementers to determine how best to integrate default methods into the constant pool and method structures, the method and interface method resolution algorithms, and the bytecode instruction set.

Tags:

  Oracle, Virtual, Machine, Structure, Java, 174 virtual machine

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of The Java® Virtual Machine Specification - Oracle

1 The java Virtual Machine Specification java SE 8 Edition Tim Lindholm Frank Yellin Gilad Bracha Alex Buckley 2015-02-13. Specification : JSR-337 java SE 8 Release Contents (" Specification "). Version: 8. Status: Maintenance Release Release: March 2015. Copyright 1997, 2015, Oracle America, Inc. and/or its affiliates. 500 Oracle Parkway, Redwood City, California 94065, All rights reserved. Oracle and java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. The Specification provided herein is provided to you only under the Limited License Grant included herein as Appendix A. Please see Appendix A, Limited License Grant.

2 To Sophia and Susan, in deepest appreciation. Table of Contents Preface to the java SE 8 Edition xiii 1 Introduction 1. A Bit of History 1. The java Virtual Machine 2. Organization of the Specification 3. Notation 4. Feedback 4. 2 The structure of the java Virtual Machine 5. The class File Format 5. Data Types 6. Primitive Types and Values 6. Integral Types and Values 7. Floating-Point Types, Value Sets, and Values 8. The returnAddress Type and Values 10. The boolean Type 10. Reference Types and Values 11. Run-Time Data Areas 11. The pc Register 12. java Virtual Machine Stacks 12. Heap 13. Method Area 13. Run-Time Constant Pool 14. Native Method Stacks 14.

3 Frames 15. Local Variables 16. Operand Stacks 17. Dynamic Linking 18. Normal Method Invocation Completion 18. Abrupt Method Invocation Completion 18. Representation of Objects 19. Floating-Point Arithmetic 19. java Virtual Machine Floating-Point Arithmetic and IEEE. 754 19. Floating-Point Modes 20. Value Set Conversion 20. Special Methods 22. Exceptions 23. Instruction Set Summary 25. v The java Virtual Machine Specification Types and the java Virtual Machine 26. Load and Store Instructions 29. Arithmetic Instructions 30. Type Conversion Instructions 32. Object Creation and Manipulation 34. Operand Stack Management Instructions 34. Control Transfer Instructions 34.

4 Method Invocation and Return Instructions 35. Throwing Exceptions 36. Synchronization 36. Class Libraries 37. Public Design, Private Implementation 37. 3 Compiling for the java Virtual Machine 39. Format of Examples 39. Use of Constants, Local Variables, and Control Constructs 40. Arithmetic 45. Accessing the Run-Time Constant Pool 46. More Control Examples 47. Receiving Arguments 50. Invoking Methods 51. Working with Class Instances 53. Arrays 55. Compiling Switches 57. Operations on the Operand Stack 59. Throwing and Handling Exceptions 60. Compiling finally 63. Synchronization 66. Annotations 67. 4 The class File Format 69. The ClassFile structure 70.

5 The Internal Form of Names 74. Binary Class and Interface Names 74. Unqualified Names 75. Descriptors 75. Grammar Notation 75. Field Descriptors 76. Method Descriptors 77. The Constant Pool 78. The CONSTANT_Class_info structure 79. The CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and CONSTANT_InterfaceMethodref_info Structures 80. The CONSTANT_String_info structure 81. The CONSTANT_Integer_info and CONSTANT_Float_info Structures 82. vi The java Virtual Machine Specification The CONSTANT_Long_info and CONSTANT_Double_info Structures 83. The CONSTANT_NameAndType_info structure 85. The CONSTANT_Utf8_info structure 85. The CONSTANT_MethodHandle_info structure 87.

6 The CONSTANT_MethodType_info structure 89. The CONSTANT_InvokeDynamic_info structure 89. Fields 90. Methods 92. Attributes 95. Defining and Naming New Attributes 101. The ConstantValue Attribute 101. The Code Attribute 102. The StackMapTable Attribute 106. The Exceptions Attribute 113. The InnerClasses Attribute 114. The EnclosingMethod Attribute 117. The Synthetic Attribute 118. The Signature Attribute 119. Signatures 120. The SourceFile Attribute 123. The SourceDebugExtension Attribute 124. The LineNumberTable Attribute 125. The LocalVariableTable Attribute 126. The LocalVariableTypeTable Attribute 128. The Deprecated Attribute 130. The RuntimeVisibleAnnotations Attribute 131.

7 The element_value structure 132. The RuntimeInvisibleAnnotations Attribute 135. The RuntimeVisibleParameterAnnotations Attribute 136. The RuntimeInvisibleParameterAnnotations Attribute 138. The RuntimeVisibleTypeAnnotations Attribute 139. The target_info union 145. The type_path structure 149. The RuntimeInvisibleTypeAnnotations Attribute 153. The AnnotationDefault Attribute 154. The BootstrapMethods Attribute 155. The MethodParameters Attribute 157. Format Checking 159. Constraints on java Virtual Machine Code 160. Static Constraints 160. Structural Constraints 164. Verification of class Files 167. Verification by Type Checking 168. Accessors for java Virtual Machine Artifacts 171.

8 Verification Type System 175. Instruction Representation 178. Stack Map Frame Representation 180. vii The java Virtual Machine Specification Type Checking Abstract and Native Methods 185. Type Checking Methods with Code 188. Type Checking Load and Store Instructions 197. Type Checking for protected Members 199. Type Checking Instructions 202. Verification by Type Inference 322. The Process of Verification by Type Inference 322. The Bytecode Verifier 322. Values of Types long and double 326. Instance Initialization Methods and Newly Created Objects 326. Exceptions and finally 328. Limitations of the java Virtual Machine 330. 5 Loading, Linking, and Initializing 333.

9 The Run-Time Constant Pool 333. java Virtual Machine Startup 336. Creation and Loading 336. Loading Using the Bootstrap Class Loader 338. Loading Using a User-defined Class Loader 339. Creating Array Classes 340. Loading Constraints 340. Deriving a Class from a class File Representation 342. Linking 343. Verification 344. Preparation 344. Resolution 345. Class and Interface Resolution 346. Field Resolution 347. Method Resolution 348. Interface Method Resolution 350. Method Type and Method Handle Resolution 351. Call Site Specifier Resolution 355. Access Control 356. Overriding 356. Initialization 357. Binding Native Method Implementations 360.

10 java Virtual Machine Exit 360. 6 The java Virtual Machine Instruction Set 361. Assumptions: The Meaning of "Must" 361. Reserved Opcodes 362. Virtual Machine Errors 362. Format of Instruction Descriptions 363. mnemonic 364. Instructions 366. aaload 367. viii The java Virtual Machine Specification aastore 368. aconst_null 370. aload 371. aload_<n> 372. anewarray 373. areturn 374. arraylength 375. astore 376. astore_<n> 377. athrow 378. baload 380. bastore 381. bipush 382. caload 383. castore 384. checkcast 385. d2f 387. d2i 388. d2l 389. dadd 390. daload 392. dastore 393. dcmp<op> 394. dconst_<d> 396. ddiv 397. dload 399. dload_<n> 400. dmul 401.


Related search queries