Home » Archives for Dustin Marx

Author Archives: Dustin Marx

More Frequent Java Long-Term Releases

A little over four years ago, Mark Reinhold (Chief Architect of the Java Platform Group at Oracle) stated in his blog post “Moving Java Forward Faster“: “For Java to remain competitive it must not just continue to move forward — it must move forward faster.” In that post, Reinhold proposed “that after Java 9 we adopt a strict, time-based model with a ...

Read More »

JDK 18: Code Snippets in Java API Documentation

OpenJDK 18 Early-Access Build 16 (2021/9/23) is now available and includes the implementation for JEP 413 (“Code Snippets in Java API Documentation“), which is targeted for JDK 18. The objective of JEP 413 is to “introduce an @snippet tag for JavaDoc’s Standard Doclet, to simplify the inclusion of example source code in API documentation” and the JEP itself covers the ...

Read More »

Java’s Optional Does Not Supplant All Traditional if-null-else or if-not-null-else Checks

Java‘s addition of java.util.Optional has been welcome and had led to more fluent code for methods that cannot always return non-null values. Unfortunately, Optional has been abused and one type of abuse has been overuse. I occasionally have run across code that makes use of Optional when there is no clear advantage over using null directly. A red flag that ...

Read More »

The Case of the Missing JEPs

The JDK Enhancement-Proposal (JEP) process is “for collecting, reviewing, sorting, and recording the results of proposals for enhancements to the JDK and for related efforts, such as process and infrastructure improvements.” JEP 0 is the “JEP Index” of “all JDK Enhancement Proposals, known as JEPs.” This post provides a brief overview of current JDK Enhancement Proposals and discusses the surprisingly ...

Read More »

Surprisingly High Cost of Java Variables with Capitalized Names

I’ve read hundreds of thousands or perhaps even millions of lines of Java code during my career as I’ve worked with my projects’ baselines; read code from open source libraries I use; and read code examples in blogs, articles, and books. I’ve seen numerous different conventions and styles represented in the wide variety of Java code that I’ve read. However, ...

Read More »

Implementing equals(Object) with instanceof Pattern Matching

Pattern matching for the instanceof operator was introduced as a preview feature with JDK 14 and was finalized with JDK 16. Because instanceof pattern matching is finalized for JDK 16, it is not surprising to now see changes being made to the JDK to take advantage of pattern matching for the instanceof operator. These changes to the JDK to leverage ...

Read More »

Java NullPointerException Avoidance and Enhancement Tactics

An encountered NullPointerException can be a useful mechanism for highlighting when a certain code flow or certain data has led to unexpected results (and the messages provided by NullPointerException are much improved with JDK 15). However, there are other times when the presence of null is not an exceptional condition and for those such cases there are several tactics that ...

Read More »

JDK 17: Hexadecimal Formatting and Parsing

Build 3 of JDK 17 Early Access Builds includes the implementation for JDK-8251989 (“Hex formatting and parsing utility”). This newly introduced functionality for parsing and formatting hexadecimal values is encapsulated in the new class java.util.HexFormat and is the subject of this post. Running javap against the new java.util.HexFormat class provides an easy way to see an overview of its API. ...

Read More »

Java Predictions for 2021 on Foojay

Geertjan Wielenga has posted “Java Predictions for 2021” on Foojay Today. It is a collection of predictions about Java in 2021 from eight members of the Java community (Almas Baimagambetov, Stephen Chin, Brice Dutheil, Marcus Hirt, Reza Rahman, Matt Raible, Simon Ritter, and me). The predictions are concisely written and it’s interesting to see the overlap between them while at ...

Read More »