Have you ever wondered how the JVM really works? Or how the overall performance behaviour of your applications is built up? Or what you can do to code in a more performant manner? Or what advanced techniques exist for applications that want to push the boundaries of the JVM? Join Ben Evans, Java Champion, author, educator and expert, for this masterclass, which will give you a guided tour deep within the JVM.
You will discuss all of the major subsystems of the JVM - including how code is executed, what objects really look like at runtime, how to make friends with the garbage collector and the opportunities (and dangers) that exist due to the Java Memory Model.
The implications of this deep knowledge are directly applicable to cutting edge applications, and Ben will show you how to take what you have learned back to your teams and use it effectively on your own applications and production environments.
The course fee includes a free copy of Ben's book, "Optimizing Java" (O'Reilly), to take away with you and help to reinforce the teaching of the course.
Learn how to:
- Understand the true representation and nature of objects at runtime
- Interpret bytecode and use the JIT compiler
- Make friends with your garbage collector
- Understand the Java Memory Model and implications for concurrency
- Consider how future directions for the platform may influence your applications
- JVM Anatomy 101
- Objects at Runtime
- Fantastic Bytecodes and How to Interpret Them
- Make Friends with your Garbage Collector
- Classloading and Code Generation Superpowers
- Concurrency and the JVM: From the 90s to the Post-Moore Era
- Compilation - Not Just JIT Anymore
- Where Do We Go From Here?
This course is designed for advanced Java (or other JVM language) programmers, architects and performance specialists.
In order to get the best from this course, you should have:- At least 5 years of experience programming with Java (or another JVM language)- A working knowledge of operating systems (e.g. scheduling and memory management)
- Experience in programming multiple languages (especially other JVM, C/C++, .NET, Ruby) is helpful- Experience with functional programming is an advantage, but not necessary- Knowledge of compiler theory is an advantage, but not necessary
Bring your own hardware
In order to take part in this course, you are required to bring your own laptop.