The Virtual Machine and Byte Code

I've only alluded to the virtual machine in this class. You certainly don't have to know a great deal about the Java virtual machine to write basic programs in Java, any more than you have to know X86 assembler to program Windows in C. Nonetheless, just as understanding assembly code wil help you write more efficient C programs, understanding the virtual machine will help you write better Java. Moreover it will answer many questions I know some of you have about how and why Java works the way it does.

There are several good books about the Java virtual machine including:

Java Virtual Machine Specification Cover

The Java Virtual Machine
by Tim Lindholm, Frank Yellin, Bill Joy and Kathy Walrath

If you're doing anything with the virtual machine, or if you just want to know what's going on behind the scenes, then you need this book.

The Java Virtual Machine Cover

The Java Virtual Machine
by Troy Downing and Jon Meyer

This book is a comprehensive programming guide for the Java Virtual Machine (JVM). The book is divided into two sections: the first section includes information on the semantics and structure of the JVM; the second section is a reference of the JVM instructions, or "opcodes." This book is intended to give readers 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. The programming guide includes numerous examples written in Java assembly language. A Java assembler is provided with the book, so the examples can all be compiled and executed. The reference section is a complete description of the instruction set of the VM and the class file format, including a description of the byte-code verifier.

Inside The Java Virtual Machine
by Bill Venners

Furthermore my own book, Java Secrets has substantial discussion of the virtual machine.



Previous | Next | Top
Last Modified April 22, 1999
Copyright 1997, 1999 Elliotte Rusty Harold
elharo@metalab.unc.edu