Best of JVMSeptember 2025

  1. 1
    Article
    Avatar of baeldungBaeldung·33w

    How to Reduce Spring Boot Memory Usage?

    Spring Boot applications typically consume significant memory (150+ MB) due to JVM architecture, embedded server threads, and framework overhead. Memory usage can be reduced through JVM tuning (serial garbage collector, reduced thread stack size, RAM limits), configuring web server thread pools, container-aware deployment practices, and removing unused dependencies. Key techniques include using -XX:+UseSerialGC, -Xss512k for thread stacks, setting MaxRAM limits, reducing Tomcat threads to 20, and matching JVM flags to container limits.

  2. 2
    Video
    Avatar of bytemonkByteMonk·31w

    The JVM Secret That Makes Code Faster!

    The JVM uses just-in-time (JIT) compilation to continuously optimize code while it runs, unlike traditional ahead-of-time compilation. It starts by interpreting bytecode, then compiles frequently used methods into optimized machine code. This adaptive approach allows JVM applications to improve performance over time by learning from real execution patterns, making it ideal for long-running services despite slower startup times.

  3. 3
    Article
    Avatar of baeldungBaeldung·30w

    Stable Values in Java 25

    Java 25 introduces the Stable Value API (JEP 502) to solve the trade-off between immutability and delayed initialization. StableValue acts as a thread-safe wrapper that guarantees single initialization while enabling deferred computation of expensive objects. The API includes StableSupplier for lazy initialization, StableList and StableMap for collections with on-demand element computation, and StableFunction for memoized function calls. This approach maintains immutability benefits and JVM optimization opportunities while avoiding upfront initialization costs that can slow application startup.

  4. 4
    Article
    Avatar of inside_javaInside Java·33w

    Java 21 ⮕ 25: Performance and Runtime Enhancements #RoadTo25 – Inside.java

    Billy Korando breaks down the key performance and runtime enhancements between Java 21 and Java 25, covering important updates like Compact Object Headers, ZGC improvements, and JFR enhancements. This comprehensive overview helps organizations understand the significant changes across multiple Java releases without having to review extensive release notes.