- Course type
- Paid course
- All Levels
- 4 hours
- 28 lessons
- Available on completion
- Course author
- Dheeru Mundluru
- Understand about the life of a class or interface inside JVM
- Learn about Reflection
- Learn about different memory areas in JVM like heap, stack and method area
- Solid understanding of Garbage Collection and its Algorithms
- Learn about some of the important Java Bytecode Instructions
- Understand Anatomy of a Class File by Using a Disassembler
Note: You don't have to register for this course if you have already registered for my comprehensive Java course ~ Java In-Depth: Become a Complete Java Engineer!. The Java course includes all the content that is covered in this course. However, it is very likely that this course could be extended while the JVM related content in the Java course may not be extended any further.
To be a complete Java engineer, apart from having a strong background in Java & design patterns, it is also important to have a good understanding of the internal workings of JVM. Towards this end, this course is about helping you gain a solid understanding of how JVM works. Here is how the course is organized.
In section 1, we start off by discussing about why JVM (and Java) were created and then discuss JVM and it's architecture at a high-level. In the process, we will also take a look at how Just-in-time (JIT) compilation works.
Sections 2 - 4 delve into the real internals of JVM.
In section 2, we discuss the Lifetime of a Type, i.e., we look at what happens to a type since the time it is accessed for the very first time. Class Loading & Linking (Bytecode Verification) will be discussed in detail and everything will be demonstrated in code.
In section 3, we look at the reflection API.
In section 4, we look at the different memory areas (runtime data areas) that JVM deals with. Here we will learn about things like method area, heap, method table, garbage collection, stacks and we will also look at some of the Java bytecode instructions too. In one of the demos, we will look at how we can tune the heap size and how it impacts garbage collection process. To learn about bytecode instructions, we will actually disassemble a .class file and we will inspect the bytecode instructions and learn about how they work.
The demo programs are available for download from the resources section of the corresponding lectures.
It is very likely that the course will also be updated to make it as comprehensive and as practical as possible.