Immutability is one of the core concepts of functional programming. “Fully” functional programming languages support it by design, at a language-level. But in Java, we need to design and implement it ourselves, at code-level.
Read More
By designing and writing code, we naturally start to develop our own personal style and habits, good and bad. The more code we write with the intent to improve, the better we’ll get eventually.
Read More
Java 8 gave us the Stream API, a lazy-sequential data pipeline of functional blocks.
Read More

Java Annotations Explained

 · 8 min
With JSR-175, Java 5 gained a metadata facility, allowing us to annotate our code with decorative syntactic metadata.
Read More
Java’s new functional abilities come with a plethora of included types. Let’s take a look into the box of provided tools.
Read More
Java has different methods of comparing objects and primitives, each with its own semantics. Using the “wrong” one can lead to unexpected results and might introduce subtle, hard-to-catch bugs.
Read More