Java bytecode for discriminating developers

By Anton Arhipov

Elevator Pitch

If you never goofed around with assembler or machine code Java bytecode can seem an obscure piece of low-level magic. This talk will introduce you the JVM and bytecode basics using live coding examples. It’s my hope that you’ll walk out armed for the next battle with low-level issues.

Description

If you never goofed around with assembler or machine code Java bytecode can seem an obscure piece of low-level magic. But sometimes things go really wrong and understanding that bit may be what stands between you and solving the problem at hand. Looking to deepen you Java programming skills? Understanding bytecodes is necessary to solve performance issues, some classloading issues and to generate code at runtime. And some things you can do are just plain freakin’ cool. This talk will introduce you the JVM and bytecode basics using live coding examples. It’s my hope that you’ll walk out armed for the next battle with low-level issues.

From the basics, to more advanced gotchas: * How to obtain the bytecode listings * How to read the bytecode * How the language constructs are mirrored by the compiler: local variables, method calls, optimizations, autoboxing, exception handling, etc * insight to some bytecode manipulation libraries (ASM, Javassist)

Notes

The beginners level talk, explaining the basics of Java bytecode, how to obtain it, how to read it, and how one can apply the knowledge.