Quiz yourself: Evaluation order, the assignment operator, and array access in Java

Prepare for a tricky adventure when evaluating expressions that contain arrays.

Quiz yourself: TreeSets, LinkedLists, and ArrayDeques in Java

These three classes are powerful—but they can be tricky when combined.

Quiz yourself: Rules about throwing checked exceptions in Java

What happens when you throw a checked exception? There are some tricky special cases.

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.

Quiz yourself: Initializing enums in Java code

There are rules about initializing enums. You need to know them.

Quiz yourself: Determining eligibility for garbage collection in Java

You never can tell when the Java garbage collector will pick up the trash.

Quiz yourself: The correct syntax of Java lambda parameters

Be sure to know the difference between identifiers and specifiers.

Quiz yourself: Working with the Java Path class and the file system

Sometimes a slash is not a slash, as this quiz explains.

Quiz yourself: Handling overloaded Java methods with arguments and return values

Do you know how the compiler selects which method to invoke when it’s forced to choose due to overloading?

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.

Quiz yourself: Using the SecurityManager class in Java

Be sure to use the checkPermission and doPrivileged methods correctly.

Quiz yourself: Working with abstract classes and default methods in Java

What happens when a default method is hidden and inaccessible?

Quiz yourself: Using subclasses and covariant return types

When overloading a Java method, be careful to specify the appropriate return types.

Quiz yourself: Manipulating Java lists—and views of lists

Is a list unmodifiable? Is it immutable? What about the views of the list?

The latest Java downloads and resources for developers

All your favorite links gathered together in one place

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

Quiz yourself: Performing reductions with Java streams using collectors and grouping

The trick is to visualize how stream elements travel along the pipeline.

Quiz yourself: Use Java streams to filter, transform, and process data

The average, sum, and count methods are trickier than they might seem.

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

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