SOLID is one of the most popular sets of design principles in object-oriented software development. It’s a mnemonic acronym for the following five design principles: Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion All of them are broadly used and worth knowing. But in this first post of my series about the SOLID principles, I …
Top 10 Future Programming Languages
Programming languages have made applications more efficient and easy to use, raising user experience to the next level. Let’s look at the top programming languages defining the future of code. 1. Python Python is widely accepted as the best programming language for beginner developers as it is simple and easy to use and deploy. It is widely used to build scalable …
10 of the Most Popular Java Frameworks of 2020
There are plenty of reasons why Java, being one of the older software programming languages, is still widely used. For one, the immense power one wields when using Java is enough to make it their staple. Couple that with the possibilities that using good Java frameworks bring and you could lessen the turnaround time for big projects. This post will …
5 Best Security Practices for Tomcat Servers
Tomcat servers are widely used application servers for today’s development architectures, popular for hosting Java based applications. Below is a guide on best security practices for security your Tomcat Server environment. 1. Beware of Banner Grabbing What is banner grabbing? Banner grabbing is the process of gaining information from computer systems including services, open ports, version, etc. How banner grabbing …
What Are Java Agents and How to Profile With Them
Java agents are a special type of class which, by using the Java Instrumentation API, can intercept applications running on the JVM, modifying their bytecode. Java agents aren’t a new piece of technology. On the contrary, they’ve existed since Java 5. But even after all of this time, many developers still have misconceptions about this feature—and others don’t even know …
Spring AOP Tutorial With Examples
You may have heard of aspect-oriented programming, or AOP, before. Or maybe you haven’t heard about it but have come across it through a Google-search rabbit hole. You probably do use Spring, however. So you’re probably curious how to apply this AOP to your Spring application. In this article, I’ll show you what AOP is and break down its key …
Here’s How to Calculate Elapsed Time in Java
Many things in programming sound like they should be easy, but are quite hard. Calculating elapsed time in Java is one of those. How hard could that be? As it turns out, it can be tricky. For starters, we have the fact that time itself is a tricky concept. For a quick example, remember that many places around the world …
Java Profilers: Why You Need These 3 Different Types
Debugging performance issues in production can be a pain and, in some cases, impossible without the right tools. Java profilers have been around forever, but the profilers most developers think about are only one type: standard JVM profilers. However, using one type of profiler is not enough. Suppose you’re analyzing your application’s performance. There are multiple profiling activities which you …
Java Performance Tools: 9 Types of Tools You Need to Know!
Managing an application’s performance, and specifically keeping it in good condition, is one of the hardest challenges in software development. That’s true for virtually any programming language and platform. Java is no exception to this rule. But beyond that, Java also presents some unique challenges of its own. For instance, one of those challenges has to do with garbage collection. …
Equality in Java: Operators, Methods, and What to Use When
Equality is an essential concept when programming, not only in Java but in pretty much all programming languages. After all, much of what we do when writing code has to do with comparing values and then making decisions based on the results of such comparisons. Unfortunately, dealing with equality can often be tricky, despite being such a vital part of …
What Is Spring Boot?
Spring Boot is an open-source micro framework maintained by a company called Pivotal. It provides Java developers with a platform to get started with an auto configurable production-grade Spring application. With it, developers can get started quickly without losing time on preparing and configuring their Spring application. This post will guide you through understanding what Spring Boot is and what …
A Look At 5 of the Most Popular Programming Languages of 2019
If you’re a software developer, then you probably—every now and then—feel overwhelmed by the super-fast pace at which our industry evolves, and that’s fine. I certainly feel that way sometimes, especially when trying to keep up with the latest trends. But it’s possible to be well-informed about what’s going on out there, and use that information to your advantage, by …
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 …
11 Simple Java Performance Tuning Tips
It’s one thing to write code that works. But what about clean, readable, concise code? That’s another thing entirely. To create an app that solves one problem? Not that hard. What about one that not only solves the problem, but it’s also easy and pleasurable to use? Now we’re talking. You could apply the same reasoning for many software properties, …
JBoss Performance Monitoring: The Complete Guide
Ensuring your apps work as designed and deliver a productive user experience starts with monitoring applications metrics. This helps you understand whether your software is performing at optimal levels. Many developers use JBoss (now called WildFly and maintained by Red Hat) to build, deploy, and host transactional applications written in Java. JBoss boasts several awesome features, like fast startup speeds, lightweight functionality, …
Java 12: New Features and Enhancements Developers Should Know
Oracle will soon roll out Java 12 in March 2019 and new releases will drop once every six months thereafter. The goal is to make new releases more frequent for the Java ecosystem, with certain releases earmarked as long-term support (LTS). And by support, we mean the allocation of update releases for bug fixes and critical security patches. This latest …
Java Logs: 4 Types of Logs You Need to Know
Logging is an important topic in software development, especially if you need to analyze bugs and other unexpected events in your production environment. Implementing your logging often seems easy. But as you probably experienced yourself, logging is far more complex than it might seem. That’s why you can find lots of articles about it here on the blog. As an …
SLF4J: 10 Reasons Why You Should Be Using It
What Is SLF4J and What are the Benefits of Using It? One of the most important aspects of developing an efficient system is to have clean, helpful logs that will help you understand what errors are being triggered, and what information is being processed. When you are first creating an application, you might not know what logging framework will be …
Top Java Application Servers: Tomcat vs. Jetty vs. GlassFish vs. WildFly
If you want to write a Java web application, the first thing you’ll need to do is make a difficult decision: choosing the Java application server on which your application will run. This is a tough choice because there are many outstanding ones out there, and the differences between them aren’t always obvious. It’s easy to wind up in a state of …
Java Logging Frameworks: log4j vs logback vs log4j2
If you ever had to analyze an issue in production, I’m sure you know how important it is to have good logging. Good logging requires three things: The log messages need to provide the required information to understand what the application does internally. Writing log messages has to be as efficient as possible so that it doesn’t affect the performance …





















