Sponsored Link •
A list of recommended books covering topics covered by Inside the Java Virtual Machine is available at Books Related to the JVM.
Further Reading about Java Security
Further Reading about Network Mobility
Here are a few articles I wrote for JavaWorld that describe other forms of network-mobile Java code:
An Audio Impression
Here's an applet that provides an audio impression of the way software feels now that it is free to zip across the network as class files. Just press the Flying Class Files button:
For more information about the Java Virtual Machine, the first place to look is the specification. The book, Java Virtual Machine Specification, by Tim Lindholm and Frank Yellin is the official word. You can browse or download a free HTML version of this book at JavaSoft's web site.
After the Java Virtual Machine Specification, you may want to refer to the book, Java Language Specification, by James Gosling, Bill Joy and Guy Steele. This book, which specifies the Java language, can give more insight into the inner workings of the Java Virtual Machine. You can browse or or download a free HTML version of this book at JavaSoft's web site.
Further Reading on Class Files
Tools for Viewing Class Files
Tools for Manipulating Class Files
Libraries for Parsing/Generating Class Files
Further Reading on the Lifetime of a Class
Further Reading on the Linking Model
Further Reading about Garbage Collection
For an in-depth treatment of garbage collection, check out the book Garbage Collection: Algorithms for Automatic Dynamic Memory Management by Richard Jones and Rafael Lins.
Here are three papers that give good general overviews of garbage collection:
Further Reading on Bytecodes
Further Reading on Threads and Monitors
The form of monitor used by Java is just one of many different kinds of mechanisms that
fall under the name "monitor". For an in-depth technical overview of
monitors in general, check out this paper:
For a good overview of all the mechanisms used in coordinating or synchronizing
threads, including monitors, see:
For a complete description of the low-level rules Java Threads must follow, see Chapter 8, Threads and Locks, from The Java Virtual Machine Specification by Tim Lindholm and Frank Yellin. This chapter is basically a reprint of Chapter 17, Threads and Locks, from The Java Language Specification by James Gosling, Bill Joy, and Guy Steel. These chapters specify how threads must behave in every Java Virtual Machine implementation. The presentation is thick and mathematical. They are not what I'd call easy reading, but as they are the specification, they give the full story. You can read them online by following the links above.
A proposal for revising the specification of Java Threads is at: http://www.cs.umd.edu/~pugh/java/memoryModel/jsr.html