Chapter 3. Overview of the JVM

There is no doubt that Java is one of the largest technology platforms on the planet—​the best available estimate is of over 10+ million developers working with Java.

The design of the JVM is high level, with the aim of removing complexity for developers. Key aspects, such as garbage collection and execution optimization are kept under the control of the JVM on behalf of developers. The fact that Java is consciously aimed at mainstream developers leads to a situation in which many developers do not need to know about the low-level intricacies of the platform they work with daily. As a result, developers may not meet these internal aspects very frequently—​but only when an issue arises, such as a customer complaining about a performance problem.

For developers who are interested in performance, however, it is important to understand the basics of the JVM technology stack. Understanding JVM technology enables developers to write better software and provides the theoretical background required for investigating performance-related issues.

This chapter introduces how the JVM executes Java to provide a basis for deeper exploration of these topics later in the book. In particular, Chapter 6 has an in-depth treatment of bytecode, which is complementary to the discussion here.

We suggest that you read through this chapter then come back to it for a second pass after you have read Chapter 6.

Interpreting and Classloading

According to the specification that ...

Get Optimizing Cloud Native Java, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.