This book is a comprehensive programming guide for the Java Virtual Machine (JVM). It gives the reader a strong overview and reference of the JVM so that they may create their own implementations of the JVM or write their own compilers that create Java object code. Perhaps the most important reason for learning about the Java Virtual Machine is that it gives you additional tools for solving programming problems in Java. The Java architecture is very open -- its easy to add programatic extensions to Java, once you have learned the basic rules of the Java Virtual Machine. And the Java Virtual Machine is portable, so you only have to write the extension once.So if you don't like how a particular feature of the Java language works, why not create an extension library which operates in the way you need it to? Its not as hard as you might think, and this book gives you all the details you need.
Wow, the mechanics of a platform-independent, byte-compiled, verifiable language are pretty cool. Even if you've had experience programming Java, there is a lot going on under the covers that you're probably not that familiar with. This book gets into the nitty-gritty, describing how the high-level language gets translated into bytecode, and from there to the actual machine code that is finally run.
The language marches on, implementation and optimization strategies improve, so the details in a book like this will get out of date. But, most of the high-level description is still accurate, and honestly that's probably the more important part anyway.
A hidden gem in the huge wall of Java books at my local Barnes and Noble, just waiting to tip over and crush me one day (and one day it will. At the rate things are going, one day that bookcase will be tall enough to crush us all. It might even loop the world several times, crushing previous editions of the same Java books over and over again (with apologies to Why the Lucky Stiff)).