Teaching Java is Getting Simpler| horstmann.com
Exploring DeepSeek with the Crazy Cheeze Puzzle| horstmann.com
Linux High DPI Settings| horstmann.com
Lessons from Advent Of Code - Part 4: Grids and Graphs| horstmann.com
Records were introduced in Java 16, and to show it can be done, there is a UnixDomainPrincipal record in the JDK. But that's it for the public part of the JDK. Elsewhere, I have not seen a profusion of record types either. Yet, I found records immensely useful in smaller programs, and I wonder if they are under-appreciated.| Cay Horstmann's Unblog
This article, also posted on http://javaalmanac.io, describes gatherers, which provide a general extension point for intermediate operations in Java streams. Gatherers are particularly useful for operations that depend on neighboring elements, all preceding elements, or all elements of a stream.| Cay Horstmann's Unblog
The classic two-volume Core Java book is updated for each LTS release of Java. For many years, Dmitry Kirsanov Studio turned my XHTML files into print and ebooks, keeping all the formatting just the way I wrote it. This time, presumably in a frenzy of cost-cutting, the publisher tried to use an offshore contractor who was plainly not up to the task. I had to learn how to produce the book myself. Here is how I did it.| Cay Horstmann's Unblog
In this series of articles, I reflect on what I learned from working through the 2023 Advent of Code problems in Java. This installment is all about streams. When should you use them, and when should you stick with loops?| Cay Horstmann's Unblog
This year, I was inspired to participate in the Advent of Code puzzle event and doggedly worked every problem until I collected my fifty stars. I learned a lot about algorithms that I had previously only seen in dull theory. And I reflected on effective Java programming. This is the first of several posts where I try to relate my advent experience to everyday programming.| Cay Horstmann's Unblog
Pattern matching in Java was derived from the syntax of the switch and instanceof statements in order to leverage the familiarity that programmers have with those constructs. As pattern matching has become more powerful in recent Java versions, that familiarity is colliding with the new needs of the pattern matching syntax and semantics. In this article, also published at Java Advent, I present six puzzlers and six principles to help you understand the latest pattern matching features.| Cay Horstmann's Unblog
What I Learned Over the Weekend About HTTP| horstmann.com
Pattern Matching for Switch (JEP 441)| horstmann.com
Java in the Small| horstmann.com