Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Java virtual machine books -- a comparative review

Laurence goes under the hood of the available JVM books to help you find the best guide for your needs

  • Print
  • Feedback
Unlike books on the Java API (application programming interface), which are a dime a dozen, books on the JVM are few and far between. This month I review the only three JVM books available at press time:

  • The Java Virtual Machine Specification by Tim Lindholm and Frank Yellin (Addison-Wesley)
  • Inside the Java Virtual Machine by Bill Venners (McGraw-Hill)
  • Java Virtual Machine by Jon Meyer and Troy Downing (O'Reilly)


This table gives you a bird's-eye view of each book's main characteristics.

The Java Virtual Machine Specification Inside the Java Virtual Machine Java Virtual Machine


Price (U.S. $) 39.95 39.95 32.95


Pages, Chapters

(Appendices)

475, 10 (0) 579, 20 (4) 426, 13 (4)


Index Very Good Good Basic


Glossary None None None


CD-ROM No Yes Floppy


Authors 2 1 2


Listings Density (lines/page) Not applicable 52 53


Java Native Interface (JNI) No Yes No




A bit of guidance for the table:

In the absence of tools to calculate the true cost-per-bit equivalent of a book, Listings Density gives you an idea of how dense or "aerated" the source listings are. Low lines/page values usually mean unreadable listings and a high page-fill factor, so the higher this value, the better. Because the Addison-Wesley book contains almost no code examples, this title has no "Listings Density" value.

Java Native Interface (JNI) indicates whether the book contains any discussion of the only important JVM-related change introduced with the 1.1 JDK -- that is, JNI.



The Java Virtual Machine Specification by Tim Lindholm and Frank Yellin

The Java Virtual
Machine Specification



The operative word in this book's title is, without a shadow of a doubt, "Specification." As a specification for all would-be JVM implementors to follow, this book is very formal, frustratingly stingy with concrete implementation tips or pointers, yet precise to the point of reading like legalese.

This is not a book to enjoy in bed, rather, it is "The Law," delineating how any third-party JVM is to behave if it even hopes to acquire the much-coveted "Java compatible" status.

The Java Virtual Machine Specification starts off by reviewing Java language concepts that are relevant to any discussion of the JVM. Then, in Chapter 3, "Structure of the Java Virtual Machine," it offers an accurate, detailed overview of all the components and processes that together make a compatible JVM implementation: These include type support and enforcement, runtime "data areas" (operand stacks, the heap, Java stack, method area, constant pools, native method stacks, and areas), class file format, and last, but not least, the JVM instruction set.

Chapter 4 is called "The Class File Format," and is devoted to Java's nearest equivalent to a conventional "executable" file format. This chapter describes the structure of class files from the macro level (methods, fields, constant pool, and so on) right down to the bit-level encoding of some fields' bitfields. Chapter 5, "Constant Pool Resolution," discusses one of the key architectural features behind Java's powerful late binding (for methods as well as fields).

  • Print
  • Feedback

Resources
  • The official (JavaSoft) Java Virtual Machine Specification, which is based on the book reviewed this month http://java.sun.com/docs/books/vmspec/html/VMSpecTOC.doc.html
  • Motorola's menu of electronic components, which includes entries to their range of microprocessor products http://mot-sps.com/sps/General/chips-nav.html
  • Intel's Pentium II pages http://www.intel.com/PentiumII/home.htm?iid={spotlight=333_text}
  • Hewlett-Packard's hand-held calculators home page http://www.hp.com/calculators/
  • A comprehensive archive on Inmos's Transputer information http://www.comlab.ox.ac.uk/archive/transputer/
  • Phil Koopman's pages on stack-based processors, which includes the full text of a book written by Phil http://www.cs.cmu.edu/afs/cs.cmu.edu/user/koopman/WWW/stack.html
  • A listing of all Laurence's book reviews for JavaWorld http://www.javaworld.com/common/jw-ti-bookreviews.html