A peek into Java 17: Continuing the drive to encapsulate the Java runtime internals

The need to encapsulate the runtime is fundamentally caused by Java’s nature as an open programming environment.

Even more greatness packed into Java 16, including tools for improving future JVMs

Java Champions love pattern matching for instanceof, records, Stream.toList(), the vector API, the foreign linker API, and the foreign-memory access API.

Essential Java 16 resources and downloads

Information from the Oracle Java Platform Group and from Java Magazine

From the vector API to records to elastic metaspace, there’s a lot packed into Java 16

The Java Champions say these are a few of their favorite things.

Understanding Java method invocation with invokedynamic

The invokedynamic instruction added in Java 7 makes it possible to resolve method calls dynamically at runtime.

Enabling Java for Windows on Arm64

Porting Java to the AArch64 architecture is a JEP 388 success story.

Mastering the mechanics of Java method invocation

Special bytecodes make calling methods particularly efficient. Knowing how they operate reveals how the JVM executes your code.

Java and the modern CPU, Part 2: The unexpected effects of instruction execution

How false sharing and branch misprediction can have unwanted effects on your code’s performance

Java and the modern CPU, Part 1: Memory and the cache hierarchy

You can understand application performance—and optimize your software approach—by understanding how CPUs, memory, and caches affect execution.

Going inside Java’s Project Loom and virtual threads

See how virtual threads bring back the old days of Java’s green threads—that is, Java threads not tied to operating-system threads.

Behind the scenes: How do lambda expressions really work in Java?

Look into the bytecode to see how Java handles lambdas.

Venkat Subramaniam: Java is changing in a responsible manner

When Java shows up at a party, it always brings a delicious dessert.

The Unsafe Class: Unsafe at Any Speed

Just because you can break the rules, doesn’t mean you should break the rules—unless you have a good reason.

Java Flight Recorder and JFR Event Streaming in Java 14

Get a stream of high-volume data points about your running app.

Understanding the JDK’s New Superfast Garbage Collectors

ZGC, Shenandoah, and improvements to G1 get developers closer than ever to pauseless Java.

Epsilon: The JDK’s Do-Nothing Garbage Collector

The benefits of Java’s memory allocator that does no garbage collection

Inside the Language: Sealed Types

How Java is moving toward pattern matching, improved enums, and better switch statements

Creating Your Own Debugging Tools

JDK serviceability technologies allow you into the JVM to solve difficult debugging problems.

Loop Unrolling

An elaborate mechanism for reducing loop iterations improves performance but can be thwarted by inadvertent coding.

Real-World Bytecode Handling with ASM

Scan, inspect, generate, and transform bytecodes on the fly with the ASM library.