Java Annotated Monthly – February 2023
New month – new stories! The February edition of Java Annotated Monthly is here, featuring industry news and trends, helpful tutorials, and step-by-step screencasts. This JAM offers several interesting forecasts about Java and other technologies for the upcoming year. Finally, the Culture and Community section includes a detailed, by-the-numbers analysis of 2023.
Let’s see what people were talking about in the world of technology in January.
Time for pudding… and another Panama update – If you’ve been following the progress of JEP 434: Foreign Function & Memory API (Second Preview), this article may interest you.
Quality Outreach Heads-up – JDK 21: JMX Subject Delegation & Fine-grained Security Deprecation – Don’t miss the features listed for deprecation in JDK 21.
Java Tutorials and Tips
Using Pattern Matching – Read this comprehensive tutorial to learn more about pattern matching and how to write cleaner code using its different variations. The article covers pattern matching for Instanceof, Switch, and Enhanced for statements, as well as guarded and record patterns.
Java 20: Colossal Sparse Memory Segments – Per Minborg, a Java Core Library Developer at Oracle, shares his knowledge about how mapped memory segments can help allocate 64TB of sparse data on a laptop.
Java 20: An Almost Infinite Memory Segment Allocator – This article continues the narrative of the previous one. In it, Minborg explains how to create a new InfiniteArena class that will help return an almost infinite amount of native memory without ever throwing an OutOfMemoryError.
Episode 28 “Java Language – State of the Union” – Listen to this episode to learn more about Project Amber’s Pattern Matching and String Templates features.
From ThreadLocal to ScopedValue with Loom – JEP Café #16 – In just 18 minutes, you will understand how ScopedValue works and how to use it as an incubator feature in JDK 20.
Secure Coding Guidelines for Java SE – This video episode is for you if you want to avoid insecure practices when using Java SE. It also includes an overview of the recent updates, including expanded guidance on topics such as deserialization, exception and error handling, and others.
Getting Started With Java Development in 2023 — An Opinionated Guide – A detailed guide for Java beginners that includes key opinions and helpful links.
Building JavaFX with Gradle – This article contains examples of modular and non-modular versions of the build.gradle build script with explanations in the comments.
Java Development Trends 2023 – Do you follow the trends in programming or prefer more traditional approaches?
Handling Virtual Threads – This article introduces different strategies for implementing virtual threads.
Functional Classes – Should you subdivide a functional program into classes like an object-oriented program? Join the discussion.
Languages, Frameworks, Libraries, and Technologies
The new Spring Boot version validation and upgrade support in Spring Tools – Since Spring Boot releases are pretty frequent, you may want to learn the best practices for painless updates.
AsyncGetStackTrace: A better Stack Trace API for the JVM – Read this article to learn why AsyncGetStackTrace is a better version of AsyncGetCallTrace.
Developer Docs + GenAI = ❤️ – If you are a technical writer interested in trending AI and machine learning technologies, this article is for you. You’ll learn how these innovations can help in your daily writing routine.
What’s New in Jakarta REST 3.1 in Jakarta EE 10? – Luqman Saeed explores two noteworthy features: a new API to bootstrap REST resources outside of a container and multipart support.
Writing a Profiler from Scratch: The Profiling Loop – This is the second post in a series describing how to write a profiler’s primary loop.
JVM Kubernetes: Optimizing Kubernetes for Java Developers – The problem with running Java applications in a Kubernetes environment is that the default settings that don’t work well for the JVM. Dariusz Wawer looks into this problem and offers a solution.
Interesting new filters on Spring Cloud Gateway 4.0 – Find out how the newly added filters help you get more insight into your applications. The following filters are described: CacheRequestBody, LocalCacheResponseBody, AddRequestHeadersIfNotPresent, and RemoveJsonAttributesResponseBody.
A Brief Overview of the Spring Cloud Framework – Read this article to get an overview of the Spring Cloud framework, a list of its main packages, and their relation to the Microservice Architectural patterns.
The Quest for REST – This blog post lists some of the issues with REST and provides hints at ways to solve them.
On Markdown in (Java) documentation comments… – Jonathan Gibbons explains why Oracle is investigating the possibility of supporting Markdown in Java documentation comments and what challenges they face.
An Opinionated Guide To Getting Started With Jakarta EE Development in 2023 – If you are just getting started with Jakarta EE and feel overwhelmed by all the information out there, Luqman Saeed has gathered all the helpful resources in the article.
Foojay Podcast #12: State and Future of the IDEs – Will IDEs survive in the future? How do they need to evolve, and what challenges do they face to stay up to date? These and other questions are discussed in this podcast.
How to Check Docker Images for Vulnerabilities – In this blog post, you’ll learn how to perform a vulnerability scan and fix the detected issues.
Kotlin 1.8.0 Released – This release brings major updates like new experimental functions for the JVM that allow you to copy or delete directory content recursively, improved kotlin-reflect performance, and a new -Xdebug compiler option for a better debugging experience. More updates in this post!
Kotlin 1.8.0 Released – Kotlin 1.8.0 is out, bringing the possibility to recursively copy or delete directory content, improved kotlin-reflect performance, the new -Xdebug compiler option for a better debugging experience, and more.
Kotlin 1.8.0 Standard Library Update – In this video, Anton describes the updates for Kotlin 1.8.0 standard library, including stabilization of the existing features, an introduction of comparable and subtractable time marks, and java.nio.file.path extensions for recursive deleting and copying.
Creative Coding with Kotlin and Compose – Have you ever tried to be unconventional with Kotlin? Watch this video to see how Compose Multiplatform can help you reveal your creativity in coding.
Optimize Your Kotlin Performance – Profiling, Micro-optimizations, and Precomputing – Duncan McGregor shows how to improve the performance of the previously generated multi-word anagrams.
Running Kotlin coroutines on Project Loom – Read this article to learn how the virtual threads preview feature allows you to effectively turn the blocking code into something non-blocking while still being coroutine compatible.
Kotlin Is More Fun Than Java And This Is a Big Deal – Jasper Sprengers meditates on the perks of Java and Kotlin. Do you agree with his thoughts?
Project Loom And Kotlin: Some Experiments – Check out this article to dive into the performance of virtual threading functionality with Project Loom and Kotlin.
Culture and Community
Happy 0x7E7! – Take a deep dive into what the number 2023 can show us.
Empowering Women in STEM & Building Inclusive Teams through Cooking – Did you know that women typically leave STEM fields after 5–7 years? Listen to this podcast to learn what factors drive women away and how to find the key to creating an environment where people feel empowered.
Podcasts I listen to: more than 80 recommendations – If you’ve been lost in an infinite pool of technical podcasts, Tomasz Nurkiewicz has shortened his list to just 80.
Five books every developer should read – This is a nice selection of books for those still searching for their personal coding style.
Don’t be like Ebenezer Scrooge. A few words about workaholism – This blog post is a kind reminder to developers around the globe to take vacations and spend time with their loved ones.
How Behaviour-Driven Development Helps Those with Sleep Disorders Contribute Effectively – You’ll be surprised to learn how many people fight sleep disorders in the workplace. What can be done to help people with these conditions and allow them to work productively? Find out in this article.
2022 Year in Review: ADRs, Staff Plus, Platforms, Sustainability, and Culture Design – Several speakers discuss the past year’s trends and share their vision for 2023. The topics in question are the benefits of architecture decision records (ADRs), the role of Staff Plus engineers, treating platforms as products, the importance of sustainability and green IT, and the need to be deliberate with culture design.
Why Many Developers Don’t Write or Give Talks and How to Overcome Challenges – If you are one such developer but feel you have the expertise to share with the world, this article contains some handy solutions.
Quality and effort – Struggling to be more careful with your code or job in general? Read this article to find out what you can do about it.
Conferences and Events
6 Essential Tracks at QCon London, March 27-29, 2023: Architecture, FinTech, ML, and More! – The 17th edition of the QCon London international software conference returns March 27–29, exploring 15 tracks focused on the emerging trends and practices the organizers believe will have the greatest impact on software development. This article covers six stand-out tracks that you might be particularly interested in.
IntelliJ IDEA 2023.1 EAP Is Open! – We’ve started a new release cycle and opened the Early Access Program. Join in to test new features and share your feedback.
IntelliJ IDEA: Managing Dependencies – Watch this screencast to learn how to add dependencies to your project and update and remove dependencies using Package Search.
Qodana and IntelliJ IDEA: How a Code Quality Platform Streamlined the Localization of an IDE – Find out how the IntelliJ IDEA team rose to the challenge of localizing the IDE’s entire UI into Chinese, Japanese, and Korean with the help of Qodana, the code quality platform from JetBrains.
Summary of IntelliJ IDEA Conf 2022 – If you missed any of the sessions we held during IntelliJ IDEA Conf 2022, you can find all of them gathered in this blog post for your convenience.
IntelliJ IDEA Ultimate: Package Checker – The Package Checker plugin bundled in IntelliJ IDEA Ultimate allows you to analyze your code and detect vulnerable dependencies.
That is all for today! Stay tuned for the next JAM, and meanwhile, you can suggest content for the next issue via email at JAM@jetbrains.com or get in touch with us on Twitter.
Subscribe to Blog updates
Thanks, we've got you!
Java Annotated Monthly – December 2023
The December edition of Java Annotated Monthly is here! As usual, you’ll find all the latest Java and Kotlin updates as well as details of key industry events for networking and learning. This issue also features the latest release candidates and targeted JEPs alongside Java tutorials and articles a…
String Templates in Java – why should you care?
TLDR; The existing String concatenation options are difficult to work with and could be error prone. String Templates (a preview feature introduced in Java 21) greatly improves how we create strings in Java by merging constant strings with variable values. The name of this feature pretty much says …
Java Annotated Monthly – November 2023
Welcome to the Java Annotated Monthly – November 2023! As the Java world keeps on spinning, we've gathered a treasure trove of articles, talks, and insights to warm your Java developers’ hearts. This month's edition features a delightful blend of the latest technological advancements and the ever…
Java Annotated Monthly – October 2023
Welcome to the October edition of Java Annotated Monthly! In this issue, we're plunging into the world of Java and tech. We'll explore the latest and greatest in the recent release of Java 21, share exciting news about the new EAP for IntelliJ IDEA 2023.3, and bring you a handpicked selection of …