Home » Author Archives: Dustin Marx

Author Archives: Dustin Marx

Project Amber: Smaller, Productivity-Oriented Java Language Features

Brian Goetz‘s recent message Welcome to Amber! introduces Project Amber (part of OpenJDK and proposed originally in January). Goetz opens the message with the introduction, “Welcome to Project Amber, our incubation ground for selected productivity-oriented Java language JEPs.” Goetz reiterates that Project Amber is not for discussing ideas for arbitrary potential new language features, but rather is for collecting new ...

Read More »

Deprecating Java’s Finalizer

JDK-8165641 (“Deprecate Object.finalize”) has been opened to “deprecate Object.finalize()” because “finalizers are inherently problematic and their use can lead to performance issues, deadlocks, hangs, and other problematic behavior” and because “the timing of finalization is unpredictable with no guarantee that a finalizer will be called.” I recently experienced and wrote about some of these nasty consequences of using Object.finalize() in ...

Read More »

Java’s Finalizer is Still There

When I was first learning Java and transitioning from C++ to Java, I remember being told repeatedly and frequently reading that one should not treat the Java finalizer like C++ destructors and should not count on it. The frequency and insistent nature of this advice had such effect on me that I cannot recall the last time I wrote a ...

Read More »

JDK 9 is the End of the Road for Some Features

It was announced a few days ago that JDK 9 is Feature Complete! Many of the “features” that made the cut are additions, but some are removals. This post looks at some of the items being removed from OpenJDK and/or Oracle’s JDK with Java 9. Endorsed-standard Override Mechanism and Extension Mechanism Part of JEP 220 (“Modular Run-Time Images”) is the ...

Read More »

JDK 9 is Feature Complete!

Today’s Mark Reinhold message JDK 9 is Feature Complete — now it’s time to ramp down announces that JDK 9’s “overall feature set is, at this point, frozen.” Reinhold, Chief Architect of Oracle’s Java Platform Group, adds, “It’s highly unlikely that any further JEPs will be targeted to the release.” Text similar to that in this message is also featured ...

Read More »

Significant Software Development Developments of 2016

This post is my personal and opinionated assessment of some of the most significant developments related to software development in 2016. This is my tenth year for this annual post and my previous years’ assessment are available for 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, and 2007. As with these previous years’ assessments, this assessment of 2016’s major developments ...

Read More »

Compare Exactly in Java Equals Methods

As I’ve worked with legacy Java code over the years, I’ve run into subtle logic and performance issues that could be traced back to improperly overridden Object.equals(Object) methods. Although the concept behind the “equals” method is seemingly simple, Josh Bloch points out in Effective Java that “Overriding the equals method seems simple, but there are many ways to get it ...

Read More »

Bash on Windows 10

Because I work with Linux and Windows based machines for development, I often find myself wishing that I had some of the handy command-line Linux tools available in my Windows environments. Cygwin, PowerShell, and custom Groovy scripts written to emulate Linux tools have helped, but I was pleasantly surprised to recently learn that Bash on Ubuntu on Windows 10 is ...

Read More »

Inheriting Javadoc Method Comments

Although the JDK Tools and Utilities pages for the javadoc tool describe the rules of Javadoc method comment reuse by implementing and inheriting methods, it is easy to unnecessarily explicitly describe comment inheritance with [email protected]} when it’s not really needed because the same comments would be implicitly inherited. The Java 8 javadoc tool page describes the rules of inherited method ...

Read More »

Fixed-Point and Floating-Point: Two Things That Don’t Go Well Together

One of the more challenging aspects of software development can be dealing with floating-point numbers. David Goldberg‘s 1991 Computing Surveys paper What Every Computer Scientist Should Know About Floating-Point Arithmetic is a recognized classic treatise on this subject. This paper not only provides an in-depth look at how floating-point arithmetic is implemented in most programming languages and computer systems, but ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Spring Interview QnA
  • Multithreading & Concurrency QnA
  • JPA Minibook
  • JVM Troubleshooting Guide
  • Advanced Java
  • Java Interview QnA
  • Java Design Patterns