The Artima Developer Community
Sponsored Link

Table of Contents

Advertisement

This page describes the contents of the book Inside the Java 2 Virtual Machine by Bill Venners, ISBN 0-07-135093-4, published by McGraw-Hill.

Preface

Acknowledgments

Introduction

Part One: Java's Architecture

Chapter 1. Introduction to Java's Architecture
This chapter gives an introduction to Java as a technology. It gives an overview of Java's architecture, discusses why Java is important, and looks at Java's pros and cons.

Chapter 2. Platform Independence
This chapter shows how Java's architecture enables programs to run on any platform, discusses the factors that determine the true portability of Java programs, and looks at the relevant tradeoffs.

Chapter 3. Security
This chapter gives an in-depth overview of the security model built into Java's core architecture. It traces the evolution of Java's security model from the basic sandbox of 1.0, through the code signing and authentication of 1.1, to the fine-grained access control of 1.2.

Chapter 4. Network Mobility
This chapter examines the new paradigm of network-mobile software heralded by the arrival of Java, and shows how Java's architecture makes it possible.

Part Two: Java Internals

Chapter 5. The Java Virtual Machine
This chapter gives a detailed overview of the Java virtual machine's internal architecture. Accompanying the chapter on the CD-ROM is an applet, named Eternal Math, that simulates the Java virtual machine executing a short sequence of bytecodes.

Chapter 6. The Java Class File
This chapter describes the contents of the class file, including the structure and format of the constant pool, and serves as both a tutorial and a complete reference of the Java class file format. Accompanying the chapter on the CD-ROM is an applet, named Getting Loaded, that simulates the Java virtual machine loading a Java class file.

Chapter 7. The Lifetime of a Type
This chapter follows the lifetime of a type (class or interface) from the type's initial entrance into the virtual machine to its ultimate exit. It discusses the processes of loading, linking, and initialization; object instantiation, garbage collection, and finalization; and type unloading.

Chapter 8. The Linking Model
This chapter takes an in-depth look at Java's linking model. It describes the parent-delegation model of class loaders, constant pool resolution, namespaces, loading constraints, and shows how to use forName() and class loaders to enable a Java application to dynamically extend itself at run-time.

Chapter 9. The Garbage-Collected Heap
This chapter describes various garbage collection techniques and explains how garbage collection works in Java virtual machines, including a discussion of the strictfp keyword and the modified floating point rules that appeared in the second edition of the Java virtual machine specification. Accompanying this chapter on the CD-ROM is an applet, named Heap Of Fish, that simulates a compacting, mark-and-sweep garbage-collected heap.

Chapter 10. Stack and Local Variable Operations
This chapter describes the Java virtual machine instructions that focus most exclusively on the operand stack--those that push constants onto the operand stack, perform generic stack operations, and transfer values back and forth between the operand stack and local variables. Accompanying this chapter on the CD-ROM is an applet, named Fibonacci Forever, that simulates the Java virtual machine executing a method that generates the Fibonacci sequence.

Chapter 11. Type Conversion
This chapter describes the instructions that convert values from one primitive type to another. Accompanying the chapter on the CD-ROM is an applet, named ConversionDiversion, that simulates the Java virtual machine executing a method that performs type conversion.

Chapter 12. Integer Arithmetic
This chapter describes integer arithmetic in the Java virtual machine. It explains two's complement arithmetic and describes the instructions that perform integer arithmetic. Accompanying this chapter on the CD-ROM are two applets that interactively illustrate the material presented in the chapter. One applet, named Inner Int, allows you to view and manipulate a two's complement number. The other applet, named Prime Time, simulates the Java virtual machine executing a method that generates prime numbers.

Chapter 13. Logic
This chapter describes the instructions that perform bitwise logical operations inside the Java virtual machine. These instructions include opcodes to perform shifting and boolean operations on integers. Accompanying this chapter on the CD-ROM is an applet, named Logical Results, that simulates the Java virtual machine executing a method that includes uses several of the logic opcodes.

Chapter 14. Floating Point Arithmetic
This chapter describes the floating point numbers and the instructions that perform floating point arithmetic inside the Java virtual machine. Accompanying this chapter on the CD-ROM are two applets that interactively illustrate the material presented in the chapter. One applet, named Inner Float, allows you to view and manipulate the individual components that make up a floating point number. The other applet, named Circle Of Squares, simulates the Java virtual machine executing a method that uses several of the floating point opcodes.

Chapter 15. Objects and Arrays
This chapter describes the Java virtual machine instructions that create and manipulate objects and arrays. Accompanying this chapter on the CD-ROM is an applet, named Three Dimensional Array, that simulates the Java virtual machine executing a method that allocates and initializes a three-dimensional array.

Chapter 16. Control Flow
This chapter describes the instructions that cause the Java virtual machine to conditionally or unconditionally branch to a different location within the same method. Accompanying this chapter on the CD-ROM is an applet, named Saying Tomato, that simulates the Java virtual machine executing a method that includes bytecodes that perform table jumps (the compiled version of a Java switch statement).

Chapter 17. Exceptions
This chapter shows how exceptions are implemented in bytecodes. It describes the instruction for throwing an exception explicitly, explains exception tables, and shows how catch clauses work. Accompanying this chapter on the CD-ROM is an applet, named Play Ball!, that simulates the Java virtual machine executing a method that throws and catches exceptions.

Chapter 18. Finally Clauses
This chapter shows how finally clauses are implemented in bytecodes. It describes the relevant instructions and gives examples of their use. The chapter also describes some surprising behaviors exhibited by finally clauses in Java source code and explains this behavior at the bytecode level. Accompanying this chapter on the CD-ROM is an applet, named Hop Around, that simulates the Java virtual machine executing a method that includes finally clauses.

Chapter 19. Method Invocation and Return
This chapter describes the four instructions that the Java virtual machine uses to invoke methods and the situations in which each instruction is used.

Chapter 20. Thread Synchronization
This chapter describes monitors--the mechanism that Java uses to support synchronization--and shows how they are used by the Java virtual machine. It shows how one aspect of monitors, the locking and unlocking of data, is supported in the instruction set.

The Appendices

Appendix A. Instruction Set by Opcode Mnemonic
This appendix lists the opcodes alphabetically by mnemonic. For each opcode, it gives the mnemonic, opcode byte value, instruction format (the operands, if any), a snapshot image of the stack before and after the instruction is executed, and a description of the execution of the instruction. Appendix A serves as the primary instruction set reference of the book.

Appendix B. Opcode Mnemonic by Functional Group
This appendix organizes the instructions by functional group. The organization used in this appendix corresponds to the order the instructions are described in Chapters 10 through 20.

Appendix C. Opcode Mnemonic by Opcode
This appendix organizes the opcodes in numerical order. For each numerical value, this appendix gives the mnemonic.

Appendix D. Slices of Pi: A Simulation of the Java virtual machine
This final appendix describes one last simulation, Slices of Pi, an applet on the CD-ROM that simulates the Java virtual machine executing a sequence of bytecodes that calculates pi.

About The Author


Sponsored Links



Google
  Web Artima.com   
Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use