Best of JVMNovember 2024

  1. 1
    Article
    Avatar of happycodersHappyCoders.eu·1y

    Java Object Headers and Compressed OOPs​

    Java objects in memory include data and an Object Header, which contains the Mark Word and Class Word. These store essential information like the object's identity hash code, age, lock state, and reference to its class. Compressed OOPs allow addressing 32 GB of memory using 32-bit pointers by leveraging object alignment in memory. This trade-off between performance and memory space is enabled by default but can be disabled with a VM option. Future enhancements aim to further reduce object header size.

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

    Z Garbage Collector in Java

    Java applications have diverse performance requirements, such as throughput, latency, and scalability. The Z Garbage Collector (ZGC) is designed to minimize pause times while efficiently managing large heap sizes. Unlike traditional garbage collectors that can cause significant application pauses, ZGC performs most of its work concurrently with the application, achieving minimal interruptions. This makes it ideal for high-demand environments like financial systems and large-scale cloud applications. The article includes a practical comparison between ZGC and G1 GC, showcasing ZGC's superior performance in maintaining low latency.

  3. 3
    Article
    Avatar of infoworldInfoWorld·1y

    Kotlin for Java developers: Classes and coroutines

    Kotlin, designed for JVM, simplifies programming with classes and concurrency. It offers features like data classes, function extensions, and easy object creation. Kotlin's coroutines enhance concurrency by providing structured concurrency, making thread management easier. It blends seamlessly with Java, offering a flexible and modern approach to coding.

  4. 4
    Article
    Avatar of baeldungBaeldung·1y

    Setting the Gradle JVM in IntelliJ IDEA

    Learn how to change the JVM version used by Gradle in IntelliJ IDEA. The guide covers locating the current JVM settings via menu navigation or keyboard shortcuts, updating the JVM version for Gradle operations, and the implications of these changes, including reindexing and synchronization of IDE features. Note that this setting only affects Gradle builds within IntelliJ and not from the command line or other IDEs.