
Java language oddities
The Java language includes various behaviors that may puzzle newcomers to the language. This post examines three such behaviors involving arrays, bytes and shorts, and private fields and methods.

Base64 encoding and decoding in Java 8
Java 8 will be remembered mainly for introducing lambdas, streams, a new date/time model, and Nashorn--but don't miss the new Base64 API. It could be just what you need to ensure data integrity in transit.
Web services in Java SE, Part 4: SOAP with Attachments API for Java
Learn about SAAJ and other advanced Java SE Web service features
Web services in Java SE, Part 3: Creating RESTful Web services
Learn how to use Java SE's JAX-WS API to create a RESTful-based library Web service
Web services in Java SE, Part 2: Creating SOAP web services
Learn how to use Java SE's JAX-WS API to create a SOAP-based units-conversion Web service.

Web services in Java SE, Part 1: Tools overview
This post launches a four-part series introducing you to Java SE 6's support for Web services. Later in the series we'll build SOAP-based and RESTful-based Web services and explore advanced Web services topics.
Java library evolution and other puzzlers
Exploring puzzling code to figure out why it doesn't do what seems obvious is one way to improve your programming skills. Puzzle yourself today!

Java 9's other new enhancements, Part 6: Concurrency
Java 9 introduces a publish-subscribe framework for reactive streams, improvements to the CompletableFuture class, and other concurrency enhancements

Java 9's other new enhancements, Part 5: Stack-Walking API
Replacing StackTraceElement, the new Stack-Walking API supports filtering and lazy access to stack trace information, and makes it easier to obtain the caller class

Java 9's other new enhancements, Part 4: Multi-release JAR files
A Java 9 extension to the JAR file format makes it easier for third-party libraries and frameworks to use language and API features from newer Java releases

Java 9's other new enhancements, Part 3: The Process API
Updates to the Process API will make it easier to obtain a process ID, get additional information about a process, and execute actions on process termination

Java 9's other new enhancements, Part 2: Milling Project Coin
JEP 213 builds on Java 7's Project Coin with small language improvements and additions for your Java programs

Java 9's other new enhancements, Part 1: Collections factory methods
The module system and REPL tool have received widespread attention, but Java's newest release has much more to offer. This series introduces other enhancements to Java 9, beginning with the new convenience factory methods in the Java...
Are checked exceptions good or bad?
While some programmers believe checked exceptions are a good language feature, others would disagree. In this post, Jeff introduces checked exceptions, then dives into the debate.
Read-only properties in JavaFX 8
Learn how to expose internal modifiable properties as external read-only properties in JavaFX 8

Interface-based applications in Java 8
Java 8's support for static methods in interfaces made it possible to create interface-based applications. Learn how in this short blog post.

Immutable empty collections and iterators
Find out why the java.util.Collections class includes static methods that return immutable empty collections and iterators.
When is a character not a character?
The values assigned to char variables don't always represent characters. Learn all about characters and their variables in this edition of Java Q&A.
Exploring JavaFX's Application class
JavaFX's Application class is an essential part of every JavaFX application. Learn about the various capabilities that Application makes available.
The six roles of the interface
Java's interface language feature often puzzles newcomers to this language. Jeff eliminates this mystery by presenting the six roles that interfaces play in the Java language.