Using NullAway to Avoid NullPointerExceptions
1. Overview We've been undertaking numerous strategies over the years, from Elvis operators to Optional, to help remove NullPointerExceptions from our apps. In this tutorial, we'll learn about Uber's...
View ArticleDelete Everything in Redis
1. Overview When caching in Redis, it can be useful to clear the whole cache when it becomes invalid. In this short tutorial, we'll learn how to delete all the keys present in Redis, both in specific...
View ArticleOpen/Closed Principle in Java
1. Overview In this tutorial, we'll discuss the Open/Closed Principle (OCP) as one of the SOLID principles of object-oriented programming. Overall, we'll go into detail on what this principle is and...
View ArticleHow to Call Python From Java
1. Overview Python is an increasingly popular programming language, particularly in the scientific community due to its rich variety of numerical and statistical packages. Therefore, it's not an...
View ArticleClicking Elements in Selenium using JavaScript
1. Introduction In this short tutorial, we're going to take a look at a simple example of how to click and element in Selenium WebDriver using JavaScript. For our demo, we'll use JUnit and Selenium to...
View Article@PropertySource with YAML Files in Spring Boot
1. Overview In this quick tutorial, we'll show how to read a YAML properties file using the @PropertySource annotation in Spring Boot. 2. @PropertySource and YAML format Spring Boot has great support...
View ArticleCQRS and Event Sourcing in Java
1. Introduction In this tutorial, we'll explore the basic concepts of Command Query Responsibility Segregation (CQRS) and Event Sourcing design patterns. While often cited as complementary patterns,...
View ArticleIntroduction to Exchanger in Java
1. Overview In this tutorial, we'll look into java.util.concurrent.Exchanger<T>. This works as a common point for two threads in Java to exchange objects between them. 2. Introduction to...
View ArticleLinkedBlockingQueue vs ConcurrentLinkedQueue
1. Introduction LinkedBlockingQueue and ConcurrentLinkedQueue are the two most frequently used concurrent queues in Java. Although both queues are often used as a concurrent data structure, there are...
View ArticleSpring REST Docs vs OpenAPI
1. Overview Spring REST Docs and OpenAPI 3.0 are two ways to create API documentation for a REST API. In this tutorial, we'll examine their relative advantages and disadvantages. 2. A Brief Summary of...
View ArticleUnivocity Parsers
1. Introduction In this tutorial, we'll take a quick look at Univocity Parsers, a library for parsing CSV, TSV, and fixed-width files in Java. We'll start with the basics of reading and writing files...
View ArticleAn Introduction to Invoke Dynamic in the JVM
1. Overview Invoke Dynamic (Also known as Indy) was part of JSR 292 intended to enhance the JVM support for dynamically typed languages. After its first release in Java 7, the invokedynamic opcode is...
View ArticleA Guide to the Hibernate Types Library
1. Overview In this tutorial, we'll take a look at Hibernate Types. This library provides us with a few types that are not native in the core Hibernate ORM. 2. Dependencies To enable Hibernate Types...
View ArticleComparing Objects in Java
1. Introduction Comparing objects is an essential feature of object-oriented programming languages. In this tutorial, we're going look at some of the features of the Java language that allow us to...
View ArticleInject Arrays and Lists From Spring Properties Files
1. Overview In this quick tutorial, we're going to learn how to inject values into an array or List from a Spring properties file. 2. Default Behavior We're going to start with a simple...
View ArticleThe “Cannot find symbol” Compilation Error
1. Overview In this tutorial, we'll review what compilation errors are, and then specifically explain what the “cannot find symbol” error is and how it's caused. 2. Compile Time Errors During...
View ArticleWhat is [Ljava.lang.Object;?
1. Overview In this tutorial, we'll learn what [Ljava.lang.Object means and how to access the proper values of the object. 2. Java Object Class In Java, if we want to print a value directly from an...
View ArticleHTTP Server with Netty
1. Overview In this tutorial, we're going to implement a simple upper-casing server over HTTP with Netty, an asynchronous framework that gives us the flexibility to develop network applications in...
View ArticleThe Constructor Return Type in Java
1. Overview In this quick tutorial, we're going to focus on the return type for a constructor in Java. First, we'll get familiar with how object initialization works in Java and the JVM. Then, we'll...
View ArticleJava Weekly, Issue 337
1. Spring and Java >> Fault-tolerant and reliable messaging with Kafka and Spring Boot [arnoldgalovics.com] A comprehensive example showcasing how to use Kafka for DLQ processing, retries, and...
View Article