A hard-core introduction to principles and practice of Java bytecode processing.
The Java virtual machine is the booster for all of our applications in the Eclipse universe and for many other platforms. For this we feed the JVM with class files compiled from Java source code or other languages. If we want to generate, modify, verify, interpret or analyze such class files (aka bytecode) we need a good understanding of their structure and some low-level mechanics of the virtual machine. This will also help us with the underlying performance, memory and concurrency traits.