Rebel Labs Report: Mastering Java Bytecode at the Core of the JVM
The JVM is a wonderful piece of engineering, and like any beautiful machine it is important to be able to understand and appreciate the technology powering the underlying layers. Java bytecode is the machine code that enables the JVM to interpret and compile language code such as Java, Scala, Groovy, Kotlin and a dozen more in order to deliver applications to hungry consumers.
Fresh from Rebel Labs, ZeroTurnaround’s research and content think-tank, comes Mastering Java Bytecode at the Core of the JVM. Based on the popular series by Anton Arhipov, JRebel Product Lead at ZT, we are proud to offer you this 30+ page, beautifully-formatted report. Complete with lame joke on the cover page ;)
Java bytecode runs the JVM quietly in the background most of the time – so the average developer rarely needs to consider it. But it is the form of the instructions that the JVM executes, so it is essential to the areas of tooling and program analysis, where the applications can modify the bytecode to adjust the behavior according to the application’s domain. Any developer looking to create profilers, mocking frameworks, AOP and other tools should understand Java bytecode thoroughly.
In Mastering Java Bytecode at the Core of the JVM, you’ll find out more about:
- How to obtain the bytecode listings
- How to read the bytecode
- How the language constructs are mirrored by the compiler:
local variables, method calls, conditional logic - Introduction to ASM
As a special bonus, we put in some commentary from our conversations with some of our favorite bytecode geeks: Cédric Champeau and Jochen Theodorou working on the Groovy ecosystem at SpringSource, and tech lead Andrey Breslav, who works on Kotlin, the new JVM language from IntelliJ IDEA creator JetBrains.
If you have any feedback, let us know at labs@zeroturnaround.com or by tweeting @jrebel.

-
Maik
-
Mark
-
Oliver

