For the advanced Java developer, Inside the Java 2 Virtual Machine
offers a detailed guide to the inner workings of today's Java Virtual Machines (JVMs), plus a complete reference to all bytecodes (the "machine code" for the language). For those who want to understand how Java really works, this book definitely delivers the goods, with excellent technical detail and demos of JVMs in action on the companion CD-ROM.
This title provides a remarkably detailed tour of the internals of the Java platform, with plenty of technical information on the way virtual machines do business under the hood, from the way language statements are turned into bytecodes to in-depth coverage of loading and invoking classes, security, and garbage collection. The author demonstrates superior knowledge of Sun's Java Virtual Machine specification and explains the principles of its design and implementation, including a full explanation of how actual bytecodes are run on a VM. (Surprisingly, variables in Java are always processed on the stack, since there are no general CPU registers available, a very different architecture than most CPUs.) Each chapter includes applets that showcase Java in action (for example, adding two numbers or demonstrating garbage collection).
The later part of this text covers over 200 Java bytecodes (mnemonic instructions for the JVM) by groups, and the book closes with a full listing of these opcodes (with over 150 pages of material). In all, Inside the Java 2 Virtual Machine serves as both a tutorial and reference to the architecture and inner operation of JVMs for any technically astute reader who wants to understand how Java really works. --Richard Dragan
Topics covered: Java Virtual Machine (JVM) class architecture, the Java class loader, tips for platform independence, Java security, verifying class files, code-signing, network mobility, Jini basics, the organization of Java .class files, Java object lifetimes, the linking model, garbage collection basics and algorithms, stack operations, type conversions, integer and floating-point arithmetic, objects and arrays, control flow, exceptions and finally clauses, method invocation, thread synchronization, Java opcode and quickcode reference, and JVM simulation demos.