Best of Awesome Java NewsletterOctober 2024

  1. 1
    Article
    Avatar of java_libhuntAwesome Java Newsletter·2y

    Java Performance Optimization Techniques

    Optimizing Java code performance is critical, especially considering that most users abandon a page if it takes longer than 3 seconds to load. Key techniques include using Java virtual threads, enabling lazy loading in Hibernate, implementing effective caching strategies, avoiding GenerationType.TABLE due to its performance overhead, and leveraging Hibernate's Query Plan Cache.

  2. 2
    Article
    Avatar of java_libhuntAwesome Java Newsletter·2y

    The Best Microservices Design Patterns Explained Like You’re Ordering Pizza

    The post creatively explains various microservices design patterns using a pizza-making analogy. It covers essential patterns like Single Responsibility, API Gateway, Database per Service, Circuit Breaker, Event Sourcing, Saga, Strangler, Bulkhead, CQRS, Sidecar, and Backend for Frontend (BFF). Each pattern is described with its benefits and real-life examples to illustrate its practical application in software engineering.

  3. 3
    Article
    Avatar of java_libhuntAwesome Java Newsletter·1y

    CompletableFuture Example: Crawler

    This post goes beyond trivial examples often used to explain Java's CompletableFuture, by implementing a simple web-crawler that starts at a specific page and follows links to reach a target website. The example uses Java's HttpClient for downloading pages and employs various techniques, including concurrency management, async operations, and recursion, to make the crawler efficient. Additionally, it covers challenges such as memory usage, concurrency limits, and avoiding revisiting pages to create a practical yet insightful example for both beginner and seasoned developers.

  4. 4
    Article
    Avatar of java_libhuntAwesome Java Newsletter·1y

    Five ways to speed up your Maven builds

    Learn five strategies to significantly speed up Apache Maven build times, including the use of profiles, concurrent testing, parallel builds, skipping unnecessary steps, and leveraging build caching. By applying these techniques to a representative project, build time was reduced from 1.5 minutes to 7.5 seconds, freeing up developers to focus more on coding.

  5. 5
    Article
    Avatar of java_libhuntAwesome Java Newsletter·2y

    Class File API: Not Your Everyday Java API

    The Class-File API, introduced in Java 22 and evolved in JDK 23, is designed for manipulating Java bytecode, specifically targeting developers who work on frameworks, tools, or advanced performance tuning. It aims to reduce reliance on third-party libraries like ASM by providing a more modern, efficient, and type-safe interface. Key features include lazy parsing and a focus on immutability and composability. While it offers significant benefits, broad adoption may take time due to the entrenched use of existing libraries.