Latest Articles

Getting started with JavaFX on Raspberry Pi


The inexpensive single-board computer works great with Java, making hardware development as easy as traditional software development.

Streaming analytics with Java and Apache Flink


How to use Flink’s built-in complex event processing engine for real-time streaming analytics

Concurrent programming with Concurnas


Modern developers have access to hardware of never-before-seen power. Here’s how to leverage Concurnas, a new JVM programming language, to unlock that power.

Get started with concurrency in Jakarta EE

Jakarta EE

One of the cornerstones of any well-written application is good performance, and that often means being able to run two or more tasks at the same time in parallel.

12 recipes for using the Optional class as it’s meant to be used

Java SE

Follow these dozen best practices to protect your applications against ugly null pointer exceptions—and make your code more readable and concise.

The 25 greatest Java apps ever written


From space exploration to genomics, from reverse compilers to robotic controllers, Java is at the heart of today’s world. Here are a few of the countless Java apps that stand out from the crowd.

Is it time for operator overloading in Java?


Love it or loathe it, this article makes the case that operator overloading is essential for making code easier to read, writer, and debug.

The role of preview features in Java 14, Java 15, Java 16, and beyond


How Oracle gathers feedback on new JDK functionality with preview, experimental, and incubating features

Pattern Matching for instanceof in Java 14


Use pattern matching for instanceof to simplify the use of the instanceof operator in Java, thereby making your code safer and easier to write.

The Best of the JDK Face-Off

Java SE

Twenty-five years of Java development saw many innovations in languages, libraries, tooling, and runtimes. Tell us what you think matters most.

JUnit 5.6 Makes Testing Easy with New Features


New features such as the ability to define test execution order and run tests in parallel make this an important release.

Five Code Review Antipatterns


Everyone cares about best practices, but worst practices can sometimes be more illuminating.

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.

How to Test Java Microservices with Pact


Microservice applications present special testing challenges.

Migrating from JUnit 4 to JUnit 5: Important Differences and Benefits


Improvements and new features make JUnit 5 compelling.

HTML5 Server-Sent Events with and Java


Building a simple, reliable messaging service

Java Flight Recorder and JFR Event Streaming in Java 14

JVM Internals

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

Java 14 Arrives with a Host of New Features

Java SE

Java 14 contains more new features than the previous two releases—most of them aimed at easing coding.