Java Annotated Monthly – December 2022
With the last month of 2022, we bring you the final edition of Java Annotated Monthly – our selection of the top stories from November. We hope you’ll enjoy reading, watching, and listening to them and get inspired for the upcoming year.
The most prominent news for our team is the release of IntelliJ IDEA 2022.3! One of the major updates it brings is the completely reworked look and feel of the IDE that you can apply by switching to the new UI in the IDE settings. Other important updates are conveniently grouped in the featured blog post!
Apart from this, the community never stopped surprising us with numerous helpful articles, podcasts, and tutorials.
So let’s catch up with them!
Java Tutorials and Tips
How Can We Read a JSON File in Java? – Study the syntax, features, and datatypes of JSON files and try to read them with the FileReader() method.
Java 17 to 20 Pattern Matching full tutorial with Records, Instanceof and Switch – JEP Café #14 – Share a cup of morning coffee with José Paumard to learn more about Pattern Matching for Instanceof and Switch, Type Patterns, and Record Patterns. Do you feel that they change the way you write Java programs?
How to Build a Text Editor With Java (Part 2 and Part 3) – Watch these videos to continue developing a Java-based command-line text editor. These two parts cover such topics as things you can do with the cursor and arrow keys, loading and displaying text files, scrolling, implementing Page Up/Down, End key support, and more.
What’s the deal with humongous objects in Java? – Find out what humongous objects are and how they influence Java heaps and your application in general. You can also see the results of the HyperAlloc benchmark work.
Zipping Collections with Groovy – The author shows what methods allow for the use of zipping in Groovy and several other Java libraries.
Episode 101. All right, let’s talk about Kafka – After a long summer break, the Java Pub House podcasts are back. This episode will explain what the Apache Kafka framework solves and why you should use it.
Retrofitting null-safety onto Java at Meta – This article introduces a new static analysis tool called Nullsafe. Meta uses it to find NullPointerException (NPE) errors in Java code and to improve developers’ productivity.
Upgrade Java8 to Java17 – If you’re getting ready for this upgrade, you might want to know what awaits you. The author shares his experience and thoughts about the process and initial preparations.
Episode 27 “JavaFX” – Kevin Rushforth, OpenJFX Project Co-Lead in Oracle, talks about JavaFX, OpenJFX, and the new JavaFX builds that Oracle produces.
My first JavaFX application – Donald Raab, a renowned Java champion, shows how he created a simple TodoList JavaFX application in IntelliJ IDEA.
Experimenting with Java Records, DatePicker, and TableView in JavaFX – Donald Raab continues experimenting with his JavaFX application by adding a to-do list to keep track of items by date.
Build smarter Java types with records and enums – Find out how to improve your code with a record keyword by validating the object in one place. This article features numerous real-code examples.
How to use Java DTOs to stay secure – In this article, the author explains how you can benefit by using Data Transfer Objects (DTOs) in modern Java applications and prevent accidental data leaks.
Foojay Podcast #7: Security in Java, what do we need to know and how to keep our applications secure? – Several security experts explain how to keep your Java applications safe by detecting vulnerabilities.
How to create a Christmas tree pattern in Java? – If you feel the urge to create something “Christmas-y”, this article is for you.
Languages, Frameworks, Libraries, and Technologies
Spring Framework 6.0 goes GA – This important release is the start of a new framework generation and straightforward upgrade from Spring Framework 5.3.x for modern-day runtime environments. Read this article to find out what it brings in terms of features.
The best way to do the Spring 6 migration – Learn what you should keep in mind when upgrading to Spring 6.0.
Spring Data 2022.0 goes GA – Welcome the third major revision of Spring Data since 2009! It comes with numerous features and refinements, such as observability integration with Micrometer, a refined repository API introducing List-based interface variants, and various changes within the individual modules.
Spring Cloud 2021.0.5 (codename Jubilee) Has Been Released – Check out the article for the release highlights.
Finding heap memory leaks with Async-profiler – The release of Async-profiler 2.9 brings a brand-new feature – live mode – to help you detect heap memory leaks. You can see how it works in a simple Spring Boot application.
The Future of EJB – Learn more about the past and present of Enterprise Beans – and what direction the author believes they’re headed in going forward.
Journey to an N-fold improvement due to a stealthy scalability issue – This article complements a linked YouTube video, Quarkus Insights #107: Quarkus Runtime performance – a peek into JVM internals, and explains how to deal with an issue that is known to cause massive performance degradation.
What is Jakarta RPC? – gRPC is an open-source Google Remote Procedure Call framework, an alternative to REST. In this article, you can learn what is so peculiar about it and how it got accepted as a Jakarta EE specification.
Microservices implementation in Java – The author describes the pros and cons of microservices and shows how to create three microservices in Java.
Java Profiling Overview – Check out an excellent selection of materials and talks about profiling tools.
Who Moved My Code? An Anatomy of Code Obfuscation – According to the author, code obfuscation is a highly underestimated and misunderstood security method. Check out this article if you’re ready to dive into the details and learn all you could have ever hoped to know about the topic.
Meta Announces Next Generation AI Hardware Platform Grand Teton – Read to learn what improvements Grand Teton has over the previous generation and how this advanced technology helps Meta to continue with their “all-in on AI” approach.
Google Introduces Cloud Workstations in Public Preview – Get a short explanation of Cloud Workstations and see what people say about them.
Kubernetes 1.24 Released with Network Policy Status, Contextual Logging, and Subresource Support – This article provides the list of released features for the latest iteration of Kubernetes and links to the more detailed descriptions.
Microsoft Introduces New UI Experience for Trying out Computer Vision with Vision Studio – The new UI allows developers to try out such features as extracting text, objects, and faces, adding captions to photos, comparing the similarity of two faces, and others.
Git Cheat Sheet with 40+ commands & concepts – Check out this practical guide to the most common Git commands.
Call Graphs: The Bread and Butter of Program Analysis – In this post, the author takes a detailed look at call graphs in the context of ProGuardCORE, a library developed by Guardsquare. This library has numerous APIs that allow you to access and navigate the resulting call graph down to any level of detail you like.
Best practices for Kubernetes Secrets management – It’s no secret that Kubernetes uses Secrets – objects for storing OAuth tokens, secure shell (SSH) keys, passwords, and other classified data. Read this article to learn more about them.
Join the Kotlin Multiplatform Contest and Win a Trip to KotlinConf’23! – If you’re a student or a recent graduate who loves to code in Kotlin, this is your chance to win an all-expenses-paid trip to KotlinConf’23.
We Are Looking For EAP Champions! – Become an EAP champion to help the Kotlin team improve their product, and get unique merch from JetBrains!
How To Use Kotlin Extensions – Can Kotlin extensions help improve your code’s reusability, readability, and flexibility? Find out together with the author of this article.
Take Part in Advent of Code 2022 in Kotlin and Win Prizes! – To celebrate the festive season, we invite you to become part of an exciting coding competition. Solve fun algorithmic problems every day, practice your Kotlin skills, and get a chance to be rewarded!
How Kotlin Is Going To Fix Your Pains in 2023 – This article will guide you through results of the first Kotlin Developer Survey, where Kotlin users let us know what they were satisfied with while also helping us to identify which pain points to focus on going forward.
From zero to 10 million lines of Kotlin – The author shares the Meta experience of migrating their Android codebase from Java to Kotlin. Learn how they did it and why it was beneficial.
How to Boost Code Coverage with Functional Testing – Find out what are the pros and cons of Unit and Functional testing and learn how to implement the latter in Kotlin.
Using Apollo Kotlin Data Builders for Testing – The article presents numerous examples of using Data Builders for effective testing.
Culture and Community
The Sad Case of the Tech T-Shirt (Fashion and Programming, part ii) – Is having the “wrong outfit” still a thing for women in IT? And, more importantly, is there a “right” one?
Are your “Value Streams” Keeping you Stuck in the Past? – The authors reflect on whether it’s possible for huge organizations to create pseudo-agility and become a little more agile or whether this half-measure won’t work and they’d be better off doubling down on breaking the mold to become dramatically more agile.
The Future of DevOps Is No-Code – Spoiler: Get as many qualified DevOps team members as possible. Read this article to learn why.
Excellent Management is a Skillset with Huge Impact on Team and Organisation Performance – You can listen to this podcast to find out what it takes to become not just a manager but a true leader and visionary for your team.
Deterministic, Reproducible, Unsurprising Releases in the Serverless Era – If you’ve ever wondered whether it is realistic to take a release to production without surprises, Ix-chel Ruiz, Java champion and senior software engineer in JFrog, has some practices, tips, and lessons that can help you get there.
Conferences and Events
Devoxx Belgium 2022 Takeaways – After Devoxx was canceled twice due to COVID-19, the conference is finally back on track. Gunter Rotsaert shares his experience at this year’s event in Belgium.
IntelliJ IDEA Live Streams
Making Sense of Large Java and Kotlin Classes – Watch a recording of our most recent webinar where Ragunath Jawahar explains the first principles of approaching and understanding unknown classes. You’ll also learn to ask the right questions about code, spot potential problems and code smells, and even plan your refactoring.
Mastering Testcontainers for Better Integration Tests – We invite you to register for the upcoming webinar that will introduce you to Testcontainers and their capabilities for running tests. Oleg Šelajev will touch upon the advanced features of Testcontainers and answer questions about debugging a container, migrating from Docker Compose, and more.
A round-up of blog posts and videos from IntelliJ IDEA :
Java 19 and IntelliJ IDEA – This blog post displays the capabilities of IntelliJ IDEA when working with such Java 19 features as record patterns and pattern matching for switch (third preview).
Helen’s Take On: Split Windows – Do you prefer split windows when working simultaneously with several tasks? If you do, this video will give you some ways to do so in IntelliJ IDEA’s editor.
IntelliJ IDEA Conf 2022 | Project Loom: Revolution in Concurrency or Obscure Implementation Detail? – We’ve added a new video to our IntelliJ IDEA Conf 2022 playlist. Check it out if you want to learn more about Project Loom.
That’s all for today! If you’d like to suggest content for the next issue of Java Annotated Monthly, please email us at (JAM@jetbrains.com) or get in touch on Twitter.
Subscribe to Blog updates
Java Best Practices
Good code follows certain rules, and knowing them increases your chances of success. We’d like to share some Java best practices that will help you on your way. We'll cover the must-know tips and tricks, from broad advice on software development to Java- and project-specific know-how. Let's get star…
The New Terminal (Beta) Is Now in JetBrains IDEs
The new terminal (Beta) is now in JetBrains IDEs and will be available in the new UI starting from the 2024.1 version of the IDEs.
‘HelloWorld’ and ‘main()’ meet minimalistic
"Just ignore the terms class, public, static and arg for now; we'll talk about it later". If you have ever mentioned these lines to a new Java student, who is about to execute their first 'HelloWorld' program, know that this is changing. If you are that student, well, congratulations, getting starte…
Easy Hacks: How To Implement Polymorphism in Java
Polymorphism is the ability of an object to take on different forms. In programming, this means that a variable or a method can have different behaviors depending on the type of object it represents. While the term may sound intimidating to beginners, polymorphism is a powerful tool: it helps you re…