Overview of JVM Metrics In this article, we’ll cover how you can monitor an application that runs on the Java Virtual Machine by going over some of the critical metrics you need to track. And, as a monitoring tool, we’ll use Stackify Retrace, a full APM solution. The application we’ll monitor to exemplify these metrics is a real-world Java web …
Multiple Media Types in Java Microservices with RESTEasy
Today we’ll be talking about microservices in Java. While it’s true that Java EE has a robust platform for writing, deploying, and managing enterprise-level microservices, in this article I will create a RESTful microservice that is as slim as possible. Don’t worry – we won’t be reinventing the wheel by marshaling our own data or anything. We’ll be using JBoss’ …
Deep Dive into Java Management Extensions (JMX)
1. Introduction In this article, we’ll have a look at a core Java technology – Java Management Extension (JMX). We’ll start with a quick intro to exactly what JMX is, and we’ll quickly move to some interesting things you can do with the technology. 2. What Is Java Management Extension Technology Introduced all the way back in Java 2, JMX …
Top 10 Java Blogs for Programmers of All Levels
The world of information technology is an ever-changing landscape. Simply thinking back to the infrastructure and functions of a webpage 5, 10, 15 years ago can make any programmer cringe. Staying current on industry strategies and best practices is essential for developers of all levels. Blogs can provide great insight and perspective from industry peers and colleagues. All over the …
How to Monitor Java Services – Performance, Errors, and more
In the real world, a lot of mission-critical business logic lives in background services. Buying something from an e-commerce website, like Amazon, kicks off a wide array of tasks that must be completed after you click to confirm your order. Monitoring the performance of your web applications is only part of the puzzle if you want to proactively ensure your …
A Step By Step Guide to Tomcat Performance Monitoring
Overview Monitoring the metrics and runtime characteristics of an application server is essential to ensure the adequate functioning of the applications running on that server, as well as to prevent or resolve potential issues in a timely manner. As far as Java applications go, one of the most commonly used servers is Apache Tomcat, which will be the focus of …
Java Glossary and the Core Concepts in the Java Language
Java Language and Terminology In this article, we’ll explore the foundations and core concepts of the Java language and terminology. The write-up is divided into sections, ordered alphabetically to enable fast and easy search for these definitions. A abstract – a keyword used in a class or method definition, which specifies that the method/class is not going to be instantiated, …
Finally, An Official Shell in Java 9 – Introducing JShell
Introduction to JShell The shell or the REPL is a well-known tool in many programming languages. Typically, this is more common in scripting languages such as Python or Node, but more recently it’s been adopted by JVM languages like Clojure and Groovy as well. The upcoming Java 9 release finally brings this shell functionality to the Java language as well, in the form …
Communication Between Microservices: How to Avoid Common Problems
In one of the previous posts, I showed you how to build a microservice with Java EE and JBoss Forge. But building one microservice is obviously not enough. The overall idea of this architectural style is to implement an application as a system of services. In the beginning, that seems like an easy task. As long as each service solves only …
Doing Reactive Programming with Spring 5
The upcoming Spring 5 Framework has a strong focus on Reactive Programming, allowing us to write both servers and clients using this paradigm. The Spring 5 implementation uses the popular Project Reactor as a base. This article will be an introduction to writing both Reactive Clients and Servers using the new tools available in version 5 of the framework. What Is …
Understanding, Accepting and Leveraging Optional in Java
Overview One of the most interesting features that Java 8 introduces to the language is the new Optional class. The main issue this class is intended to tackle is the infamous NullPointerException that every Java programmer knows only too well. Essentially, this is a wrapper class that contains an optional value, meaning it can either contain an object or it can …
Finally Getting the Most out of the Java Thread Pool
Thread pool is a core concept in multithreaded programming which, simply put, represents a collection of idle threads that can be used to execute tasks. First, let’s outline a frame of reference for multithreading and why we may need to use a thread pool. A thread is an execution context that can run a set of instructions within a process – …
Java Heap Space vs. Stack Memory: How Java Applications Allocate Memory
Java applications need a certain amount of RAM on a computer to run. Each time an object or variable is declared, it needs more RAM. Simply designating enough memory to hold every value declared and run each method would lead to a bloated application. To keep application memory requirements lean, it is partitioned in ways that require less memory and …
7 Common Mistakes You Should Avoid When Handling Java Exceptions
Handling an exception is one of the most common but not necessarily one of the easiest tasks. It is still one of the frequently discussed topics in experienced teams, and there are several best practices and common mistakes you should be aware of. Here are a few things you should avoid when handling exceptions in your application. Mistake 1: Specify …
Solving the XML Problem with Jackson
Introduction Jackson is a popular library for handling JSON in Java applications, quickly becoming the de-facto standard in the ecosystem. Starting with version 2, it has also introduced a mature XML implementation alongside its established JSON support. Adding Jackson XML to the Project Adding the Jackson XML module to the project only needs a single dependency – the Jackson XML …
9 Best Practices to Handle Exceptions in Java
Exception handling in Java isn’t an easy topic. Beginners find it hard to understand and even experienced developers can spend hours discussing how and which Java exceptions should be thrown or handled. That’s why most development teams have their own set of rules on how to use them. And if you’re new to a team, you might be surprised how …
How Memory Leaks Happen in a Java Application
Introduction to Memory Leaks In Java Apps One of the core benefits of Java is the JVM, which is an out-of-the-box memory management. Essentially, we can create objects and the Java Garbage Collector will take care of allocating and freeing up memory for us. Nevertheless, memory leaks can still occur in Java applications. In this article, we’re going to describe the …
Solving Your Logging Problems with Logback
Logback is a logging framework for Java applications, created as a successor to the popular log4j project. In fact, both of these frameworks were created by the same developer. Given that logging is a crucial part of any application for both debugging and audit purposes, choosing an adequate logging library is a foundational decision for any project. There are several …
What to Do About Java Memory Leaks: Tools, Fixes, and More
Memory management is Java’s strongest suit, and one of the many reasons why developers choose Java over other platforms and programming languages. On paper, you create objects and Java would deploy its Garbage Collector to allocate and free up memory. But that’s not to say Java is flawless; in real life, memory leaks do happen, and it happens a lot …
The Do’s and Don’ts of Java Strings
Today we’re going to be talking about Strings in Java. If you write Java often, you know that a String is considered a first class object, even though it is not one of the eight primitive types. What you may not know is how to best handle Strings in production applications. To do this, you’ll need to understand how to …




















