Home > Store

larger cover

Add To My Wish List

Java Virtual Machine Specification, Java SE 7 Edition, The

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Sample Content

Product Author Bios

Tim Lindholm is a former Distinguished Engineer at Sun Microsystems. He was a contributor to the Java programming language and the Senior Architect of the Java Virtual Machine, later working on Java for mobile devices. Prior to Sun, Lindholm worked on virtual machines and runtime systems for Prolog at Argonne National Laboratory and Quintus. He holds a B.A. in Mathematics from Carleton College.

 

Frank Yellin is a former Staff Engineer at Sun Microsystems. He was an original member of the Java project and spent a decade working on runtime systems for interpreted and compiled languages. Prior to Sun, he worked on the compilation of Common Lisp at Lucid. He holds an A.B. in Applied Mathematics from Harvard and an M.S. in Computer Science from Stanford.

 

Gilad Bracha is the creator of the Newspeak programming language and a former Distinguished Engineer at Sun Microsystems. Prior to Sun, he worked on Strongtalk, the Animorphic Smalltalk System. He holds a Ph.D. in Computer Science from the University of Utah.

 

Alex Buckley is the Specification Lead for the Java programming language and the Java Virtual Machine at Oracle. He holds a Ph.D. in Computing from Imperial College London.

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

Preface to the Java SE 7 Edition        xiii

Preface to the Second Edition         xv

Preface to the First Edition         xvii

 

Chapter 1: Introduction          1

1.1  A Bit of History   1

1.2  The Java Virtual Machine   2

1.3  Summary of Chapters   3

1.4  Notation   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   49

3.7    Invoking Methods   50

3.8    Working with Class Instances   53

3.9    Arrays   55

3.10  Compiling Switches   57

3.11  Operations on the Operand Stack   58

3.12  Throwing and Handling Exceptions   59

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   75

4.3   Descriptors and Signatures   76

4.4   The Constant Pool   82

4.5   Fields   95

4.6   Methods   97

4.7   Attributes   100

4.8   Format Checking   140

4.9   Constraints on Java Virtual Machine code   140

4.10  Verification of class  Files   148

4.11  Limitations of the Java Virtual Machine   334

 

Chapter 5: Loading, Linking, and Initializing          337

5.1  The Run-Time Constant Pool   337

5.2  Java Virtual Machine Startup   340

5.3  Creation and Loading   340

5.4  Linking   347

5.5  Initialization   359

5.6  Binding Native Method Implementations   362

5.7  Java Virtual Machine Exit   362

 

Chapter 6: The Java Virtual Machine Instruction Set          363

6.1   Assumptions: The Meaning of "Must"   363

6.2   Reserved Opcodes   364

6.3   Virtual Machine Errors   364

6.4   Format of Instruction Descriptions   365

6.5   Instructions   368

 

Chapter 7: Opcode Mnemonics by Opcode         565

 

Index         569

 

Appendix A: Limited License Grant         587

 

 
Buy

eBook (Watermarked)  $47.99  $38.39

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Also available in other formats.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.