1. The Execution Lifecycle of a Java Application
    • This blog post describes in details what happens when executing a Java application. After reading this post, you will understand the execution lifecycle of a Java application and the activities performed by the JVM during the execution phase.

  2. The Dynamic Features of Java
    • The existence of dynamic features built in the language allows Java developers to transform their program executions at runtime dynamically. However, these features in most Java programs are a fundamental problem for static analysis tools that rely on precise call-graph construction. Notably, the GraalVM compiler relies on points-to analysis to perform AOT compilation. This blog post covers the main dynamic features of Java and the reasons why they are still a long-standing issue for researchers and practitioners in program analysis.

  3. Inversion of Control and Dependency Injection in Java
    • This blog post explains Inversion of Control and Dependency Injection in Java. These concepts are the backbone of modern enterprise Java frameworks.

  4. AOT vs. JIT Compilation in Java
    • AOT compilation, supported by the GraalVM compiler, seems to be the future for Java and the programming languages that compile to JVM bytecode. But what is the difference between compiling source code using a JIT compiler w.r.t using an AOT compiler? This post explains the difference between these two approaches.

  5. Encoding, Encryption, Hashing, and Obfuscation in Java
    • The concepts of encoding, encryption, hashing, and obfuscation are often mistakenly confused or taken as similar (which is even worse). Let's clarify this matter and see some Java code examples of practical applications.

  6. The Fork/Join Java framework
    • If you are a Java developer, you need to know about the Fork/Join framework. It simplifies parallel programming, hence helping you to forget about manually tweaking your threads.

  7. The Producer-Consumer Pattern in Java Made Easy
    • The BlockingQueue data structure can be used to implement Producer-Consumer pattern. In this guide I explain how.

  8. Deploying to Maven Central
    • This tutorial is a step-by-step guide to deploy a software artifact to the Maven Central repository.