<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/java/best-of/2024/12" -->

---
title: Best Java posts — December 2024 | daily.dev
description: The most upvoted Java posts from December 2024, curated by the daily.dev community.
canonical: https://daily.dev/tags/java/best-of/2024/12
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/java/best-of/2024/12
og:type: website
og:site_name: daily.dev
og:title: Best Java posts — December 2024 | daily.dev
og:description: The most upvoted Java posts from December 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Java — December 2024

1. 1  
[](/posts/advice-for-first-time-open-source-contributors-hiwprf2wp "Advice for First-Time Open Source Contributors")  
Article  
![Avatar of yegor256](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/e403368e462f4ae184ab876bda3d013d)Yegor's Blog · 2y  
Advice for First-Time Open Source Contributors  
Contributing to open source projects can be challenging, especially for first-timers. Key advice includes studying existing files to match the repository's style, submitting issues instead of asking questions, making small changes, picking easy problems, writing necessary tests, maintaining a human profile, thoroughly explaining changes, aiming for quality, and being polite and persistent. Following these tips can help ensure a smoother and more successful contribution process.  
91  
5
2. 2  
[](/posts/akullpp-awesome-java-a-curated-list-of-awesome-frameworks-libraries-and-software-for-the-java-prog-myfkgpwaq "akullpp/awesome-java: A curated list of awesome frameworks, libraries and software for the Java programming language.")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 2y  
akullpp/awesome-java: A curated list of awesome frameworks, libraries and software for the Java programming language.  
This post provides a comprehensive list of Java frameworks, libraries, and software that supports various functions like architecture, build tools, caching, CLI parsing, code analysis, and more. It includes resources for development, distributed applications, machine learning, microservices, high-performance computing, HTTP clients, and database interactions. Each category presents multiple tools and libraries to help simplify and improve Java development productivity.  
69  
4
3. 3  
[](/posts/ep143-dns-record-types-you-should-know-vyvboeov7 "EP143: DNS Record Types You Should Know")  
Article  
![Avatar of bytebytego](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/35be29234ee14d01a9cd049c52e12753)ByteByteGo · 2y  
EP143: DNS Record Types You Should Know  
This post covers essential DNS record types such as A, CNAME, AAAA, PTR, MX, NS, SRV, and TXT records. It further explains the concepts of polling vs. webhooks, differentiates API from SDK, discusses Netflix's use of Java in their microservices architecture, and provides a guide on Big O notation for writing efficient algorithms. A comprehensive Kubernetes command cheatsheet is also featured.  
52
4. 4  
[](/posts/what-tdd-looks-like-in-a-real-project-with-code-examples--khdrtdhpf "What TDD Looks Like In A REAL PROJECT (With Code Examples)")  
Video  
![Avatar of continuousdelivery](https://media.daily.dev/image/upload/s---b6TAqpH--/f_auto/v1730404995/logos/continuousdelivery)Continuous Delivery · 2y  
What TDD Looks Like In A REAL PROJECT (With Code Examples)  
Test-driven development (TDD) is often seen as tricky to implement in real-world projects. The post discusses the advantages of TDD, such as encouraging simpler and more testable code designs, and provides a practical example from an open-source project. It highlights the differences between teaching TDD using simple exercises and applying it to complex, real-world scenarios. The post also covers the use of internal DSLs for acceptance testing and demonstrates some coding practices for effective TDD.  
42
5. 5  
[](/posts/imposter--0mwidtiuy "Imposter ඞ")  
Article  
![Avatar of watercooler](https://media.daily.dev/image/upload/s--abas6DOY--/f_auto/v1785668288/squads/fd062672-63b7-4a10-87bd-96dcd10e9613?_a=BAMAMicg0)Watercooler · 2y  
Imposter ඞ  
40  
7
6. 6  
[](/posts/top-10-intellij-idea-plugins-to-boost-development-efficiency-in-2024-dvlnhpelp "Top 10 IntelliJ IDEA Plugins to Boost Development Efficiency in 2024")  
Article  
![Avatar of java_libhunt](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/7729929f2ca649d7b13f6b04aa94d300)Awesome Java Newsletter · 2y  
Top 10 IntelliJ IDEA Plugins to Boost Development Efficiency in 2024  
IntelliJ IDEA developers can boost their efficiency using specific plugins designed for various tasks. Key plugins include Apidog Fast Request for API debugging, JetBrains AI Assistant for intelligent code assistance, Lombok for reducing boilerplate code, SonarLint for code quality assurance, Save Actions for automating file save tasks, Key Promoter X for learning keyboard shortcuts, CodeGlance for quick code navigation, Rainbow Brackets for enhanced readability with colored brackets, Translation for real-time code translation, and JRebel for efficient hot deployment.  
34  
1
7. 7  
[](/posts/exploring-advanced-jvm-options-kuphuxntm "Exploring Advanced JVM Options")  
Article  
![Avatar of baeldung](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52cccfb454d946c4b7dfa5e816f9e576)Baeldung · 2y  
Exploring Advanced JVM Options  
The Java Virtual Machine (JVM) offers a range of advanced options to fine-tune its performance, manage memory, and conduct diagnostics. These options include configurations for garbage collection, memory management, Just-in-Time (JIT) compilation, and debugging. Developers can achieve optimal application performance by understanding and appropriately using these advanced settings, while also considering potential changes in future JVM versions.  
35
8. 8  
[](/posts/quick-and-easy-how-to-test-restful-apis-in-java-lzfp3m8zv "Quick and Easy: How to Test RESTful APIs in Java")  
Article  
![Avatar of java_libhunt](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/7729929f2ca649d7b13f6b04aa94d300)Awesome Java Newsletter · 2y  
Quick and Easy: How to Test RESTful APIs in Java  
Testing RESTful APIs is crucial for backend development but switching between IDEs and tools like Postman can reduce efficiency. The Apidog Fast Request plugin for IntelliJ IDEA simplifies this process by enabling API testing directly within the development environment. It supports Java and Kotlin projects, automatically generates API documentation, and syncs endpoint info for team collaboration. Install it from IntelliJ's plugin marketplace for streamlined testing with a single click.  
34
9. 9  
[](/posts/run-a-java-lambda-function-from-a-docker-image-sm8tirckb "Run a Java Lambda Function From a Docker image")  
Article  
![Avatar of foojayio](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/1820f6a6ae944760aa322b67ed85f848)Foojay.io · 2y  
Run a Java Lambda Function From a Docker image  
Learn how to package and deploy a Java Serverless function using Docker and AWS's new container support. The guide includes step-by-step instructions for setting up a Maven project, creating a Docker image, configuring AWS infrastructure (ECR, IAM roles, policies), and deploying the Lambda function. It also covers both local and remote testing of the deployed function.  
28
10. 10  
[](/posts/java-8-optional-class-6vplikbbf "Java 8 Optional Class")  
Article  
![Avatar of colkgirl](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/82e21f28c59c499f9c47833c55500fd8)Code Like A Girl · 2y  
Java 8 Optional Class  
Java 8 introduced the Optional class to handle null values gracefully, reducing NullPointerException occurrences. It allows developers to write more expressive and clean code using methods like map() and ifPresent(). Optional should be used when the absence of a value makes sense, but avoided in collections or performance-critical code.  
27
11. 11  
[](/posts/the-foreign-function-and-memory-api-ipbunsl8i "The Foreign Function and Memory API")  
Article  
![Avatar of inside_java](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/de5992d95f374790bdfd2ae03a16f6e3)Inside Java · 2y  
The Foreign Function and Memory API  
The Foreign Function and Memory (FFM) API enables Java applications to invoke code outside the JVM and access memory not managed by the JVM. It provides safer and more efficient alternatives to JNI. Learn to access off-heap memory with MemorySegment, call C library functions, handle native data types, and troubleshoot foreign function calls. Use jextract to generate Java bindings for native libraries.  
26  
2
12. 12  
[](/posts/boundary-check-vs-try-catch-oeuslse7c "Boundary Check vs Try-Catch")  
Article  
![Avatar of java_libhunt](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/7729929f2ca649d7b13f6b04aa94d300)Awesome Java Newsletter · 2y  
Boundary Check vs Try-Catch  
The post compares the performance of two coding approaches: boundary check and try-catch, with code benchmarks. The boundary check approach outperforms try-catch by 22.6% due to the JVM's optimization capabilities and the overhead associated with exception handling. Key factors influencing the results include explicit conditional checks and runtime overhead of exceptions.  
26
13. 13  
[](/posts/5-best-udemy-courses-to-learn-java-in-2025-bnalek6xu "5 Best Udemy Courses to Learn Java in 2025")  
Article  
![Avatar of javarevisited](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/9ca6532654d146408235d53f0823a26d)Javarevisited · 2y  
5 Best Udemy Courses to Learn Java in 2025  
This post highlights the top five Udemy courses to learn Java in 2025, chosen for their comprehensive content, up-to-date information, and hands-on learning approach. Each course is designed by experienced instructors and covers key Java concepts, including core Java, multithreading, Spring Boot, and more. Recommendations are based on years of experience as a Java developer and educator, providing links to join each course.  
25  
3
14. 14  
[](/posts/mocking-private-fields-with-mockito-ohimubyns "Mocking Private Fields With Mockito")  
Article  
![Avatar of baeldung](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52cccfb454d946c4b7dfa5e816f9e576)Baeldung · 2y  
Mocking Private Fields With Mockito  
Learn how to mock private fields using Mockito in this tutorial. Although Mockito doesn't inherently support it, different approaches such as using Java Reflection API or JUnit 5's ReflectionUtils can achieve this goal. Examples are provided to demonstrate how to set values for private fields and test their methods.  
24  
2
15. 15  
[](/posts/dynamic-spring-data-jpa-repository-query-with-arbitrary-and-clauses-h28ed1qh4 "Dynamic Spring Data JPA Repository Query With Arbitrary AND Clauses")  
Article  
![Avatar of baeldung](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52cccfb454d946c4b7dfa5e816f9e576)Baeldung · 2y  
Dynamic Spring Data JPA Repository Query With Arbitrary AND Clauses  
This tutorial explores three approaches to creating dynamic queries in Spring Data JPA repositories: Query by Example, Query by Specification, and QueryDSL. The post provides a detailed setup for each method, including code examples for entity classes, repository definitions, and querying logic. It compares these methods based on their complexity and suitability for different types of queries.  
24
16. 16  
[](/posts/ep142-the-fundamental-pillars-of-object-oriented-programming-ysms3di2l "EP142: The Fundamental Pillars of Object-Oriented Programming")  
Article  
![Avatar of bytebytego](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/35be29234ee14d01a9cd049c52e12753)ByteByteGo · 2y  
EP142: The Fundamental Pillars of Object-Oriented Programming  
Object-oriented programming (OOP) is built on four pillars: abstraction, encapsulation, inheritance, and polymorphism. Abstraction hides the complexity by only showcasing the essential features, encapsulation wraps data and methods in a class with restricted access, inheritance allows new classes to inherit attributes and methods from existing classes to promote code reuse, and polymorphism enables methods to behave differently based on the object they are invoked on.  
24  
1
17. 17  
[](/posts/the-battle-for-java-supremacy-spring-boot-vs-quarkus-java-javaspringboot-hybridcloud-quarkus-42qazsqry "The Battle for Java Supremacy: Spring Boot vs Quarkus #java #javaspringboot #hybridcloud #quarkus")  
Video  
![Avatar of ibmtechnology](https://media.daily.dev/image/upload/s--OXHaOiWX--/f_auto/v1715498011/logos/ibmtechnology)IBM Technology · 2y  
The Battle for Java Supremacy: Spring Boot vs Quarkus #java #javaspringboot #hybridcloud #quarkus  
Spring Boot is an opinionated framework for creating standalone, production-ready Spring applications, known for its ability to reduce boilerplate code and its vast ecosystem. Quarkus, a newer Java framework, is designed for container-optimized and cloud-native applications, offering faster boot times and better resource utilization. It supports both imperative and reactive programming models, with a strong focus on developer productivity.  
24
18. 18  
[](/posts/clean-code-the-good-the-bad-and-the-ugly-ko0mzizge "Clean Code: The Good, the Bad and the Ugly")  
Article  
![Avatar of java_libhunt](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/7729929f2ca649d7b13f6b04aa94d300)Awesome Java Newsletter · 2y  
Clean Code: The Good, the Bad and the Ugly  
Clean Code by Robert C. Martin has had a significant impact on the programming world, emphasizing the importance of code quality, readability, and maintainability. While many of its principles are timeless, the book has been criticized for its heavy Java focus and dogmatic presentation. Modern programming practices and languages have evolved, and there are now better alternatives that provide more nuanced advice. The book's examples, particularly the prime generator, are often verbose and not always aligned with its own rules, making them difficult for beginners to understand.  
21  
1
19. 19  
[](/posts/java-documentation-boyla4re1 "Java Documentation")  
Article  
![Avatar of jrebel](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/f9cdf4443dc44df590dd451ca31ff56e)JRebel · 2y  
Java Documentation  
Java documentation, while essential, can be challenging to write. This post provides tips on creating effective JavaDocs, highlights the importance of documenting code clearly for team collaboration, and introduces JavaDoc best practices including the use of tags like @link, @code, and @since. It also covers tools and AI extensions that can aid in generating JavaDocs, emphasizing the value of well-documented code for maintaining readability and efficiency in Java development.  
21
20. 20  
[](/posts/java-competitive-programming-setup--q8gbpzh09 "Java competitive programming setup !!!")  
Article  
![Avatar of ddc](https://media.daily.dev/image/upload/s--t55nRQBh--/f_auto/v1732690968/squads/8477fe56-7fa5-445f-923a-ed31d5ea9def)Daily Dose of Code · 2y  
Java competitive programming setup !!!  
The post provides a simple setup for Java competitive programming, designed to handle multiple test cases efficiently. It includes instructions on creating an input.txt file and output.txt file, and a Java class to manage input and output streams, allowing for streamlined testing of different scenarios without retyping. An example implementation shows how to check for unique characters in a string by reading from the input file and writing results to the output file.  
22  
5
21. 21  
[](/posts/7-types-of-garbage-collectors-in-java-c557wydtj "7 Types of Garbage Collectors in Java")  
Article  
![Avatar of javarevisited](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/9ca6532654d146408235d53f0823a26d)Javarevisited · 2y  
7 Types of Garbage Collectors in Java  
The post provides an overview of garbage collection in Java and details seven garbage collectors: Serial GC, Parallel GC, Concurrent Mark Sweep GC, Z GC, G1 GC, Shenandoah GC, and Epsilon GC. It explains the metrics used to evaluate GC algorithms, such as latency, throughput, and memory footprint. Each garbage collector is described with its use cases and how to enable it in Java.  
20
22. 22  
[](/posts/difference-between-circuit-breaker-and-retry-in-spring-boot-sjoodwb9i "Difference Between Circuit Breaker and Retry in Spring Boot")  
Article  
![Avatar of baeldung](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52cccfb454d946c4b7dfa5e816f9e576)Baeldung · 2y  
Difference Between Circuit Breaker and Retry in Spring Boot  
In distributed systems, handling failures is crucial for reliability and performance. Two key resilience patterns are Retry and Circuit Breaker. Retry handles transient failures by re-executing operations, while Circuit Breaker prevents repeated attempts at operations likely to fail, protecting against cascading failures. Implementing these patterns in Spring Boot using Resilience4j enhances system stability via features like exponential backoff in Retry and state management in Circuit Breaker. Integrating with Spring Boot, Spring Cloud Circuit Breaker, and Spring Retry, they provide robust frameworks for creating resilient microservices.  
20
23. 23  
[](/posts/how-to-diagnose-a-null-exception-message-in-java-cxqzlykht "How to Diagnose a Null Exception Message in Java")  
Article  
![Avatar of baeldung](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52cccfb454d946c4b7dfa5e816f9e576)Baeldung · 2y  
How to Diagnose a Null Exception Message in Java  
Exceptions in Java can help find and fix bugs, but when an exception message is null, it can be confusing. This post examines why null exception messages occur, especially in Java versions prior to JDK 14, and how JDK 14 improves exception handling with detailed messages. It also provides tips on using stack traces and SLF4J for better debugging.  
19
24. 24  
[](/posts/how-to-read-an-external-properties-file-in-maven-c0n7oymib "How to Read an External Properties File in Maven")  
Article  
![Avatar of baeldung](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52cccfb454d946c4b7dfa5e816f9e576)Baeldung · 2y  
How to Read an External Properties File in Maven  
Learn how to effectively read and integrate external properties files into a Maven build using the properties Maven plugin. The guide covers building a simple Maven project, configuring the maven-resources-plugin to filter properties, and dynamically loading properties files via the Maven command line for flexible build processes.  
19  
1
25. 25  
[](/posts/annoucing-javac-support-in-visual-studio-code-java-gnxgprguf "Annoucing Javac support in Visual Studio Code Java")  
Article  
![Avatar of devblogs](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/8f68b453325f482ebeb73fb780092713)DevBlogs · 2y  
Annoucing Javac support in Visual Studio Code Java  
Visual Studio Code has introduced partial support for Javac as the underlying compiler for Java, in collaboration with Red Hat and Microsoft. This change aims to improve developer experience with timely support for new Java features and better alignment with build tools like Maven and Gradle. Although disabled by default, users can enable it through specific settings. The update promises more accurate Java specification compliance, faster feature support, and reduced maintenance overhead. Future improvements will enhance usability, performance, and start-up experience, and the work is being integrated upstream into the JDT project.  
18

[See all Java archives](/tags/java/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/tags/java/best-of/2024/12#page","url":"https://daily.dev/tags/java/best-of/2024/12","name":"Best Java Posts — December 2024","description":"The most upvoted Java posts from December 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/java/best-of/2024/12#items","numberOfItems":25,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/advice-for-first-time-open-source-contributors-hiwprf2wp","name":"Advice for First-Time Open Source Contributors"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/akullpp-awesome-java-a-curated-list-of-awesome-frameworks-libraries-and-software-for-the-java-prog-myfkgpwaq","name":"akullpp/awesome-java: A curated list of awesome frameworks, libraries and software for the Java programming language."},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/ep143-dns-record-types-you-should-know-vyvboeov7","name":"EP143: DNS Record Types You Should Know"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/what-tdd-looks-like-in-a-real-project-with-code-examples--khdrtdhpf","name":"What TDD Looks Like In A REAL PROJECT (With Code Examples)"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/imposter--0mwidtiuy","name":"Imposter ඞ"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/top-10-intellij-idea-plugins-to-boost-development-efficiency-in-2024-dvlnhpelp","name":"Top 10 IntelliJ IDEA Plugins to Boost Development Efficiency in 2024"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/exploring-advanced-jvm-options-kuphuxntm","name":"Exploring Advanced JVM Options"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/quick-and-easy-how-to-test-restful-apis-in-java-lzfp3m8zv","name":"Quick and Easy: How to Test RESTful APIs in Java"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/run-a-java-lambda-function-from-a-docker-image-sm8tirckb","name":"Run a Java Lambda Function From a Docker image"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/java-8-optional-class-6vplikbbf","name":"Java 8 Optional Class"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/the-foreign-function-and-memory-api-ipbunsl8i","name":"The Foreign Function and Memory API"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/boundary-check-vs-try-catch-oeuslse7c","name":"Boundary Check vs Try-Catch"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/5-best-udemy-courses-to-learn-java-in-2025-bnalek6xu","name":"5 Best Udemy Courses to Learn Java in 2025"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/mocking-private-fields-with-mockito-ohimubyns","name":"Mocking Private Fields With Mockito"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/dynamic-spring-data-jpa-repository-query-with-arbitrary-and-clauses-h28ed1qh4","name":"Dynamic Spring Data JPA Repository Query With Arbitrary AND Clauses"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/ep142-the-fundamental-pillars-of-object-oriented-programming-ysms3di2l","name":"EP142: The Fundamental Pillars of Object-Oriented Programming"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/the-battle-for-java-supremacy-spring-boot-vs-quarkus-java-javaspringboot-hybridcloud-quarkus-42qazsqry","name":"The Battle for Java Supremacy: Spring Boot vs Quarkus #java #javaspringboot #hybridcloud #quarkus"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/clean-code-the-good-the-bad-and-the-ugly-ko0mzizge","name":"Clean Code: The Good, the Bad and the Ugly"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/java-documentation-boyla4re1","name":"Java Documentation"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/java-competitive-programming-setup--q8gbpzh09","name":"Java competitive programming setup !!!"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/7-types-of-garbage-collectors-in-java-c557wydtj","name":"7 Types of Garbage Collectors in Java"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/difference-between-circuit-breaker-and-retry-in-spring-boot-sjoodwb9i","name":"Difference Between Circuit Breaker and Retry in Spring Boot"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/how-to-diagnose-a-null-exception-message-in-java-cxqzlykht","name":"How to Diagnose a Null Exception Message in Java"},{"@type":"ListItem","position":24,"url":"https://daily.dev/posts/how-to-read-an-external-properties-file-in-maven-c0n7oymib","name":"How to Read an External Properties File in Maven"},{"@type":"ListItem","position":25,"url":"https://daily.dev/posts/annoucing-javac-support-in-visual-studio-code-java-gnxgprguf","name":"Annoucing Javac support in Visual Studio Code Java"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"Java","item":"https://daily.dev/tags/java"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/java/best-of"},{"@type":"ListItem","position":5,"name":"December 2024"}]}]}
```

