Latest Articles

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

JVM Internals

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

Understanding Java generics, Part 1: Principles and fundamentals


Learn how to use generics to increase type safety and code readability.

Guava: A treasure trove of Java functionality


This broad collection of utilities and functions from Google merits a principal place in your toolkit.

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

Java 16

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.

Java still rocks the finance industry. Here’s why Java 16 makes it even better.

Java 16

High-speed trades? Quantitative analysis? The investment pays off.

Java for the enterprise: What to expect in Jakarta EE 10

Jakarta EE

The release is only a year away. Here’s what to expect.

Essential Java 16 resources and downloads

Java 16

Information from the Oracle Java Platform Group and from Java Magazine

Celebrating 25 years of Java with learning and certification

Java 25th Anniversary

A special offer from Oracle University for you and your team

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

Java 16

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

Understanding Java method invocation with invokedynamic

JVM Internals

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

Enabling Java for Windows on Arm64

Java 16

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

How to program machine learning in Java with the Tribuo library

Java 16

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

JVM Internals

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

The best of 2020: The 10 most popular Java Magazine articles

Read them, reread them, share them.

Fast, flexible data access in Java using the Helidon microservices platform


Helidon SE and Helidon MP provide a very diverse array of methods for accessing data sources.

The latest Java downloads and resources for developers

Java SE

All your favorite links gathered together in one place

Design change-tolerant software with cloud native patterns


By applying cloud native designs, you can build resilient, easily adaptable, web-scale distributed applications that handle massive user traffic and data loads.

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

Java SE

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

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

Jakarta EE

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

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.

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

Java SE

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.