• Finding orders using Topological Sort

    Topological sort is a fundamental algorithm to order elements in a directed graph; in this context, elements are often denoted as nodes, and the edges between them represent dependencies. In […]

  • What is Java CLASSPATH?

    Classpath is a fundamental concept that has been oblivious to many of us, especially when working with modern IDEs like IntelliJ IDEA; we don’t have to worry much about classpaths […]

  • Things I’ve learned from Effective Java – Part 1

    In this series, I want to introduce one of the most-read books in Java programming: Effective Java. For the most part, this book focuses on the most fundamental classes and […]

  • Dependency Injection: The Basic

    To start the article, let’s first look at the code below: As we can see, class MonitoringService depends on class NotificationSender to function, and we’ve initialized class NotificationSender directly inside […]

  • Executing tasks with the Executor Framework in Java

    Java offers us many ways to write multi-threading applications, at the early stage, we probably create a new thread for each task by manually extending the Thread class, this seems […]

  • Avoiding NullPointerException in Java

    NullPointerException is one of the most hideous exceptions in Java. It can silently stop the execution of one thread, or it can, fatally terminate the execution of the whole program. […]

  • Introduction to Trie Data Structure

    Trie is a data structure that is not so popular but is particularly useful when you have to work a lot with strings. It also has different names like a […]

  • Instrumenting Applications with Prometheus

    Monitoring is an integral part of any non-trivial system, by the monitoring process, we then have an insight into the application performance and status, such as RPM, CPU usage, and […]

  • Covariance and Contravariance (Java)

    Many programming languages support subtyping, for example, MechanicalKeyboard can be a subtype of Keyboard, and according to the Liskov substitution principle, the MechanicalKeyboard instance should be substitutable everywhere the Keyboard […]

  • Some notes about TreeSet in Java

    The most frequent data structure that I use in Java is the List. But sometimes if I have to store distinct elements without caring about the ordering, then I would […]

Every support is much appreciated ❤️

Buy Me a Coffee