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.

First steps with Oracle Cloud Infrastructure SDK for Java

Learn how to control Oracle Cloud Infrastructure resources through Java code.

Two gifts you can give your Java developers—today

Your words, actions, and attitude can inspire creativity. Here’s what to do.

How to make the most of Java enums

Anytime you have a set of known constant values, an enum is a type-safe representation that prevents common problems.

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.

How to program machine learning in Java with the Tribuo library

Tribuo is an open source ML library designed for business applications—and for interoperability with many popular ML platforms.

Working and unit testing with temporary files in Java

Temporary files are frequently used in testing and in production. Here is how to create and manage—and delete—them.

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

JPAstreamer: Expressing Hibernate/JPA queries with Java streams

Mixing Hibernate/JPA and Java for database actions is neither completely type-safe nor intuitive. The JPAstreamer library offers another solution.

How to build applications with the WebSocket API for Java EE and Jakarta EE

WebSocket is a two-way communication protocol that lets clients send and receive messages over a single connection to a server endpoint.

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.

Java on Arm processors: Understanding AArch64 vs. x86

Arm-based processors are increasingly popular and are in the news thanks to Apple’s latest notebooks and Oracle’s cloud services.

Hello, Coherence Community Edition, Part 3: Packaging, deployment, scaling, persistence, and operations with Java

How to push a Coherence CE application out to a Kubernetes cluster, and then scale and manage that cluster

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.

Introducing JobRunr: A distributed job scheduler for Java

A quick tutorial on an open source library that leverages lambdas and Spring

Refactoring Java, Part 3: Regaining business agility by simplifying legacy code

By making the code easier to understand, you also make it easier—and safer—to maintain.

How Dev versus Ops became DevOps

Patrick Debois, founder of DevOpsDays, explains how the DevOps movement started and where it’s headed.

Creating a Java off-heap in-memory database

Store gigabytes or terabytes of data in high-speed memory—if you have the physical RAM, of course.