Contents

How to learn the JVM

JVM learning

Java is The Most Popular (almost) statically typed language and learning this language is undoubtedly one of the best investments you - as a developer - can make if you want to have a warm and cosy feeling of job market security.

Another investment - probbaly not such obvious as learning a specific programming language - is learning about the virtual machine itself. Is the ROI high enough to consider JVM learning as New Year’s Resolution? Well, honestly, I have no idea. Rarely (if ever at all!) had I opportunity to use my JVM/bytecode knowledge at work, but I guess that’s because my knowledge is not wide enough!

I want to change it and here’s my plan:

In the year 2022 I’m about to invest into learning the JVM itself. How should I approach such task?

JVM specification

The first and right answer is to download and read JVM specification. A very daunting task, but a very important one nonetheless.

https://docs.oracle.com/javase/specs/jvms/se17/html/index.html

Why is this the right answer? Because this is the source of truth.

The Internet

Courses

If you have bucks to spare: there are e.g. Udemy courses that would deepen the knowledge of Java:

YT videos

With jvm internals search query you can find a lot of resources.

Pace and range problems

There are some known problems with video content:

  • it is non-searchable
  • it is non-skimmable
  • the pace is usually too slow (yes, I’m aware I can listen faster)
  • and the intro is too long
  • it is hard to find a lecture/conference video with the satisfying level of details

For the above reasons I prefer to study texts, however, the reality (the engaging family obligations that don’t leave much timespace to focus) makes my bluetooth earphones a valuable addition to a sponge and washing up liquid :)

How to make it fun?

How to make it fun? How to remember things? How to remember what I read? I know some ways:

  • effective and critial reading
  • take notes
  • make pictures
  • try to explain things to others
  • learn tools/libraries in the process (javap)

Let’s start

In the next few blog posts I will be focusing on JVM internals (as I will slowly go through JVM specification). If you haven’t read the JVM spec yet, you can join me!

Let’s not treat this challenge as another New Year’s resolution (even if it is).

Let’s start a journey that would make us better progrmamers and professionals.

All entries related to JVM spec are grouped in JVM Spec series.